怎么修改mysql数据库编码的编码

比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
MySql修改数据库编码为UTF8
   创建时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
  网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。
  我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
  我们可以通过命令查看数据库当前编码:
  mysql& SHOW VARIABLES LIKE 'character%';
  发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。
  第一阶段:
  mysql设置编码命令
  SET character_set_client = utf8;
  SET character_set_connection = utf8;
  SET character_set_database = utf8;
  SET character_set_results = utf8;
  SET character_set_server = utf8;
  然后 mysql& SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。
  但是,这只是一种假象
  此种方式只在当前状态下有效,当重启数据库服务后失效。
  所以如果想要不出现乱码只有修改my.ini文件,
  从my.ini下手(标签下没有的添加,有的修改)
  [client]
  default-character-set=utf8
  [mysql]
  default-character-set=utf8
  [mysqld]
  default-character-set=utf8
  以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。
  然后重启mysql,执行
  mysql& SHOW VARIABLES LIKE 'character%';
  确保所有的Value项都是utf8即可。
  但是可恶的事情又来了,
  |character_set_client | utf8 |
  | character_set_connection | utf8 |
  | character_set_database | utf8 |
  | character_set_filesystem | binary |
  | character_set_results | utf8 |
  | character_set_server | latin1 |
  | character_set_system | utf8
  注意 该配置| character_set_server | latin1 无法设置成UTF8 交互时候仍然会出现乱码。
  第二阶段:找到下面这东东
  X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
  重新启动设置,将默认编码设置为utf8.这样就能达到我们所要的效果了。
  mysql& SHOW VARIABLES LIKE 'character%';
  +--------------------------+---------------------------------------------------------+
  | Variable_name | Value |
  +--------------------------+---------------------------------------------------------+
  | character_set_client | utf8 |
  | character_set_connection | utf8 |
  | character_set_database | utf8 |
  | character_set_filesystem | binary |
  | character_set_results | utf8 |
  | character_set_server | utf8 |
  | character_set_system | utf8 |
  | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
  +--------------------------+---------------------------------------------------------+
  8 rows in set
  另外注意事项:
  1、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。
  CREATE TABLE `tablename4` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `varchar1` varchar(255) DEFAULT NULL,
  `varbinary1` varbinary(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8
  2、网页xxx.php/jsp保存时选择utf8编码,页头最好加上
  header('conten-type:text/charset=utf-8');
  在执行CRUD操作前先执行一下
  mysql_query("set names utf8");
  -------------------------
  连接数据库设置编码
  jdbc:mysql://地址:3306/数据库名?characterEncoding=utf8
  -------------------------
  java中的常用编码UTF-8;GBK;GB-1;
  对应mysql数据库中的编码utf8;gb2312;latin1
相关文章:
[ 责任编辑:娜娜 ]
去年,手机江湖里的竞争格局还是…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte彻底解决mysql中文乱码的办法
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!!utf8可以兼容世界上所有字符!!!!Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:mysql不能插入中文默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql&mysql&alter database mydb &character set utf8;!另一种方法是直接修改默认的Mysql配置文件在debian环境下,彻底解决mysql无法插入中文和中文乱码的办法上面提到了用临时方法更改数据库的字符集设置,显示中文,但是后来发现在有的系统下并不能成功,比如我用的debian 7.0,找了好久终于找到一个适合debian系统的解决方案,debian 7.0下测试成功,其他诸如修改client和mysql加入default-character-set=utf8的方法之类的,只适用与5.5以前的系统!终极决绝方案,一劳永逸:debian下mysql的字符串修改为utf8(参考:rainysia的专栏)一、进入mysql(mysql -uroot -p),查看当前数据库字符集()二、查看当前系统版本(lsb_release -a)Mysql不能插入中文三、#vim /etc/f 。(5.5以前系统)在【client】下面加入&default-character-set=utf8在【mysqld】下面加入default-character-set=utf8Notice:注意 如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8,仅仅加入到mysqld下面的.client就不需要加了四、#vim /etc/f 。(5.5以后系统)如下修改:[client]default-character-set=utf8[mysqld]default-storage-engine=INNODBcharacter-set-server=utf8collation-server=utf8_general_ci五、重启mysql(/etc/init.d/mysql stop & /etc/init.d/mysql &start)六、修成成功,进入mysql查看字符集(mysql&show variables like ‘character_set_%’;)Mysql无法插入中文一、避免创建数据库及表出现中文乱码和查看编码方法1、创建数据库的时候:CREATE DATABASE `test`CHARACTER SET 'utf8'COLLATE 'utf8_general_ci';2、建表的时候 CREATE TABLE `database_user` (`ID` varchar(40) NOT NULL default '',`UserID` varchar(40) NOT NULL default '',) ENGINE=InnoDB DEFAULT CHARSET=utf8;这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。但是如果你已经建了库和表可以通过以下方式进行查询。1.查看默认的编码格式:mysql& show variables like &%char%&;+--------------------------+---------------+| Variable_name | Value |+--------------------------+---------------+| character_set_client | gbk || character_set_connection | gbk || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | gbk || character_set_server | utf8 || character_set_system | utf8 |+--------------------------+-------------+注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;执行SET NAMES utf8的效果等同于同时设定如下:SET character_set_client='utf8';SET character_set_connection='utf8';SET character_set_results='utf8';2.查看test数据库的编码格式:mysql& show +------------+------------------------------------------------------------------------------------------------+| Database | Create Database |+------------+------------------------------------------------------------------------------------------------+| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |+------------+------------------------------------------------------------------------------------------------+3.查看yjdb数据库的编码格式:mysql& sh| yjdb | CREATE TABLE `yjdb` (`sn` int(5) NOT NULL AUTO_INCREMENT,`type` varchar(10) NOT NULL,`brc` varchar(6) NOT NULL,`teller` int(6) NOT NULL,`telname` varchar(10) NOT NULL,`date` int(10) NOT NULL,`count` int(6) NOT NULL,`back` int(10) NOT NULL,PRIMARY KEY (`sn`),UNIQUE KEY `sn` (`sn`),UNIQUE KEY `sn_2` (`sn`)) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |二、避免导入数据有中文乱码的问题1:将数据编码格式保存为utf-8设置默认编码为utf8:set names utf8;设置数据库db_name默认为utf8:ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_设置表tb_name默认编码为utf8:ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_导入:LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE2:将数据编码格式保存为ansi(即GBK或GB2312)设置默认编码为gbk:设置数据库db_name默认编码为gbk:ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_设置表tb_name默认编码为gbk:ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_导入:LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE注:1.UTF8不要导入gbk,gbk不要导入UTF8;2.dos下不支持UTF8的显示;三、解决网页中乱码的问题将网站编码设为 utf-8,这样可以兼容世界上所有字符。  如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。1.编辑/f ,在[mysql]段加入default_character_set=utf8;2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;3.在网页代码中加上一个&set names utf8&或者&set names gbk&的指令,告诉MySQL连线内容都要使用utf8或者
阅读本文后您有什么感想? 已有
人给出评价!
04-10-0804-10-0704-10-0704-10-0704-10-0704-10-0704-10-0704-10-07
注:您的评论需要经过审核才会显示出来
没有查询到任何记录。
Copyright &
PC6下载().All Rights Reserved
备案编号:湘ICP备号114网址导航1711人阅读
数据库(27)
1. 查看MySQL数据库的默认编码
有如下两种方式,
(1)使用status命令
图1 status命令
(2)使用show variables命令
mysql& show variables like 'char%';
图2&show variables命令
如果要查看某个数据库的编码,在运行上面的命令前,应先执行use db_命令切换数据库(db_name为要查看的数据库名)。
2. 改变MySQL数据库的默认编码
安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。下文描述如何将默认编码改为utf8:
首先修改MySQL的配置文件/etc/f:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完毕后,使用如下命令之一重启mysql服务:
service mysql restart
/etc/init.d/mysql restart
改变后,之前手工创建的数据库如未显式指定编码,则其编码仍是默认的latin1,可使用如下命令更改编码:
mysql& alter database db_name CHARACTER SET utf8;
参考资料:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:409659次
积分:4805
积分:4805
排名:第4762名
原创:112篇
转载:47篇
评论:68条
(1)(6)(3)(2)(3)(1)(2)(1)(4)(3)(12)(4)(9)(5)(6)(1)(8)(6)(3)(17)(8)(18)(2)(1)(3)(4)(1)(5)(2)(1)(1)(1)(2)(2)(4)(2)(5)(1)(1)

我要回帖

更多关于 mysql改变数据库编码 的文章

 

随机推荐