111111

mysql乱码问题

一.登录mysql先做  set names latinl; 然后在执行跟新或者执行语句

 

前提是查好库和表都是latinl的然后执行以上操作,不过是临时的

二 在sql文件中指定 set names latinl;然后登录mysql,通过如下命令执行。  mysql > source test.sql

三,.通过指定mysql命令的字符集参数实现--default-character-set=latinl;

mysql -uroot -p '123456' --default-character-set=latinl test < test.sql      导入sql直接输入字符集 也就不乱码了

四。在配置文件里设置客户端及服务端参数

[client]
character-set-server = utf8

[mysql]
character-set-server = utf8

不乱码的思想,客户端,服务器,库,表,程序字符集统一

 

###如何更改生产mysql数据库库表的字符集

对于已有的数据库想修改字符集不能直接通过 “alter database character set”或 “alter table tablename character set”

这两个命令都没有跟新已有记录的字符集,而只是对新创建的表或者记录生效。

已经有记录的字符集的调整,必须先将数据导出,经过修改字符集后重新导入后才可以,

总结: 例如目前是latinl >修改完utf-8

1.建库及建表的语句导出,sed 批量修改为utf-8.

2.导出所有数据

3.修改mysql服务器和客户端编码为utf-8

4.删除原有的库表及数据

5.导入新的建库建表的语句

6.导入mysql的数据

 

 

[client]character-set-server = utf8
[mysql]character-set-server = utf8
[mysqld]#bind-address=127.0.0.1character-set-server = utf8datadir=/data/ops/app/mysql-5.6.23/standardsocket=/data/ops/app/mysql-5.6.23/standard/standard.sockuser=mysqlskip-grant-tables

posted @ 2018-07-23 16:45  赵SIR  阅读(145)  评论(0编辑  收藏  举报