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