以前都没有问题的,升级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
【已解决】MYSQL命令行查询中文乱码
-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
【已解决】MYSQL命令行查询中文乱码
上次由 sanz 在 2012-12-04 13:07,总共编辑 1 次。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
Re: MYSQL命令行查询中文乱码
似乎找到原因了。/usr/share/mysql/charsets/目录里没有utf8.xml
哪里去找这个文件呢?
哪里去找这个文件呢?
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
Re: MYSQL命令行查询中文乱码
放狗。查到了,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/ |
但是,遗憾的是仍然查询中文乱码!!!
再搜,发现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
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
Re: MYSQL命令行查询中文乱码
彻底解决!
把text字段改成BLOB,搞定!
把text字段改成BLOB,搞定!
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
-
- 帖子: 25
- 注册时间: 2012-03-11 20:12
-
- 帖子: 23
- 注册时间: 2014-05-20 11:23
Re: 【已解决】MYSQL命令行查询中文乱码

非常感谢楼主
我的问题跟一楼的描述一模一样,困扰了我两天
搜遍全世界都是旧版本的解决方法
终于可以开始下一步了

-
- 帖子: 23
- 注册时间: 2014-05-20 11:23
Re: 【已解决】MYSQL命令行查询中文乱码
同问杉杉林 写了:请问这个是如何操作的的?sanz 写了:彻底解决!
把text字段改成BLOB,搞定!

-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
Re: 【已解决】MYSQL命令行查询中文乱码
总算最终真正彻底解决了问题。由于数据库存储都是python程序操作,不幸的是忘了指定MySQL连接的字符编码(不知道哪里有设置默认的),造成所有字符都是以ascii编码存储在数据库中。现在在python里指定了字符编码,然后把所有数据库调整完毕,再也没有任何乱码了。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS