事件:从A服务器搬数据库到B 背景:A,B服务器版本都为Mysql 5.1.45 A服务器早已配置好,并一直在使用,一切正常。B服务器是用source新安装的# ./configure --prefix=/mysql --enable-thread-safe-client --without-debug 搬完之后 latin1_swedish_ci 类型的数据库不会出现乱码
但utf8_general_ci的不能正常使用,在SET NAMES GBK 的时候出错提示:Unknown character set: 'GBK'
上网查得到 ./configure --prefix=/mysql --enable-thread-safe-client with-charset=gb2312 --with-extra-charsets=all可解决。(./configure --prefix=/mysql --enable-thread-safe-client --with-extra-charsets=complex 也试过)重新安装之后utf8_general_ci可以正常使用,但latin1_swedish_ci查出来的竟然全是乱码。到底是什么问题呢?项目急啊,请路过的朋友尽量帮帮忙,小弟在线等。问题补充:
加上with-charset=gb2312 --with-extra-charsets=all编译,重新安装完数据库后,再开启数据库时不会有乱码,无意中重启apache后 就全是乱码了。狂晕~
但utf8_general_ci的不能正常使用,在SET NAMES GBK 的时候出错提示:Unknown character set: 'GBK'
上网查得到 ./configure --prefix=/mysql --enable-thread-safe-client with-charset=gb2312 --with-extra-charsets=all可解决。(./configure --prefix=/mysql --enable-thread-safe-client --with-extra-charsets=complex 也试过)重新安装之后utf8_general_ci可以正常使用,但latin1_swedish_ci查出来的竟然全是乱码。到底是什么问题呢?项目急啊,请路过的朋友尽量帮帮忙,小弟在线等。问题补充:
加上with-charset=gb2312 --with-extra-charsets=all编译,重新安装完数据库后,再开启数据库时不会有乱码,无意中重启apache后 就全是乱码了。狂晕~
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
这几个字符集要改成和你A库的一致
在my.cnf
加上
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
重启Mysql即可.非常感谢,感谢楼上,感谢CSDN!昨天上网查了好久,试了半天都没弄出来,早知道早上来问问好了。
[client]
#password = [your_password]
port = 3306
socket = /tmp/mysql.sock
loose-default-character-set=latin1
添加最下边那一行,最好还要看看你A库有没有设置 ,和A库保持一致
#Server characterset: latin1
#Db characterset: latin1
#Client characterset: latin1
#Conn. characterset: latin1加上 loose-default-character-set=latin1; 重启后也不会出乱码。奇怪的是 把 #loose-default-character-set=latin1; 也注释了后也行。可能是设置一次就行了。看了一下A数据库的my.cnf 以上两个都没设置。好了,谢谢大哥们,结贴了。