一.登陆mysql先作 set names latinl; 而后在执行跟新或者执行语句mysql
前提是查好库和表都是latinl的而后执行以上操做,不过是临时的sql
二 在sql文件中指定 set names latinl;而后登陆mysql,经过以下命令执行。 mysql > source test.sql数据库
三,.经过指定mysql命令的字符集参数实现--default-character-set=latinl;bash
mysql -uroot -p '123456' --default-character-set=latinl test < test.sql 导入sql直接输入字符集 也就不乱码了服务器
四。在配置文件里设置客户端及服务端参数app
[client] character-set-server = utf8 [mysql] character-set-server = utf8
不乱码的思想,客户端,服务器,库,表,程序字符集统一socket
###如何更改生产mysql数据库库表的字符集编码
对于已有的数据库想修改字符集不能直接经过 “alter database character set”或 “alter table tablename character set”server
这两个命令都没有跟新已有记录的字符集,而只是对新建立的表或者记录生效。blog
已经有记录的字符集的调整,必须先将数据导出,通过修改字符集后从新导入后才能够,
总结: 例如目前是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