【已解决】MYSQL命令行查询中文乱码

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
sanz
帖子: 1010
注册时间: 2006-09-29 5:11

【已解决】MYSQL命令行查询中文乱码

#1

帖子 sanz » 2012-10-09 12:13

以前都没有问题的,升级12.04后发现查询中文数据乱码。
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

在my.cnf里添加default-character-set=utf8:[client]里添加可以,但是[mysqld]里添加后mysql无法启动。
root/user进去set character_set_server="utf8", set character_set_database='utf8'都可以,但是查询数据依旧乱码,而且退出后再进来仍旧是原来的latin1
上次由 sanz 在 2012-12-04 13:07,总共编辑 1 次。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
sanz
帖子: 1010
注册时间: 2006-09-29 5:11

Re: MYSQL命令行查询中文乱码

#2

帖子 sanz » 2012-10-09 15:32

似乎找到原因了。/usr/share/mysql/charsets/目录里没有utf8.xml
哪里去找这个文件呢?
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
sanz
帖子: 1010
注册时间: 2006-09-29 5:11

Re: MYSQL命令行查询中文乱码

#3

帖子 sanz » 2012-10-09 15:48

放狗。查到了,utf8.xml是没有,可以没有,因为是内置的。
再搜,发现12.04后设置方法改了,应该是在[mysqld]里加character-set-server=utf8
设置成功:
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 | /usr/share/mysql/charsets/ |

但是,遗憾的是仍然查询中文乱码!!!
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
sanz
帖子: 1010
注册时间: 2006-09-29 5:11

Re: MYSQL命令行查询中文乱码

#4

帖子 sanz » 2012-12-04 13:06

彻底解决!
把text字段改成BLOB,搞定!
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
杉杉林
帖子: 25
注册时间: 2012-03-11 20:12

Re: 【已解决】MYSQL命令行查询中文乱码

#5

帖子 杉杉林 » 2013-05-13 10:17

sanz 写了:彻底解决!
把text字段改成BLOB,搞定!
请问这个是如何操作的的?
do or donot,there is no try.
uponiixviiiiii
帖子: 23
注册时间: 2014-05-20 11:23

Re: 【已解决】MYSQL命令行查询中文乱码

#6

帖子 uponiixviiiiii » 2014-06-21 12:35

:em38
非常感谢楼主
我的问题跟一楼的描述一模一样,困扰了我两天

搜遍全世界都是旧版本的解决方法
终于可以开始下一步了 :em01
uponiixviiiiii
帖子: 23
注册时间: 2014-05-20 11:23

Re: 【已解决】MYSQL命令行查询中文乱码

#7

帖子 uponiixviiiiii » 2014-06-21 12:39

杉杉林 写了:
sanz 写了:彻底解决!
把text字段改成BLOB,搞定!
请问这个是如何操作的的?
同问 :em01
sanz
帖子: 1010
注册时间: 2006-09-29 5:11

Re: 【已解决】MYSQL命令行查询中文乱码

#8

帖子 sanz » 2015-02-25 17:15

总算最终真正彻底解决了问题。由于数据库存储都是python程序操作,不幸的是忘了指定MySQL连接的字符编码(不知道哪里有设置默认的),造成所有字符都是以ascii编码存储在数据库中。现在在python里指定了字符编码,然后把所有数据库调整完毕,再也没有任何乱码了。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
回复