linux下mysql乱码终结

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
yexin218
帖子: 461
注册时间: 2007-08-22 17:36
来自: 澳门
联系:

linux下mysql乱码终结

#1

帖子 yexin218 » 2007-08-30 16:41

和windwos中的Mysql一樣,默認的設置都是latin1.而並非我們需要的gbk,或者big5.所以還是需要人爲的設置:
無論是採用telnet還是直接到Linux中進入mysql中:找到/etc/目錄下的my.cnf文件:

我用的是RedHat AS4
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
以上默認的文件内容,現在把它修改為如下:
default-character-set=utf8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
[client]
default-character-set=gbk

[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=utf8
[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


紅色部分為增加的部分,其餘保持不變。
然後重新啓動Mysql服務器
執行命令:
set names 'gbk';
show variables like "character_set_%";
show variables like "collation_%";
看到的結果應該是:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)
mysql> show variables like "collation_%";
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | gbk_chinese_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

這樣儅windows程序訪問數據庫的時候就應該是會顯示正確了。如果還不行的話,可能看看在建立數據庫的時候有沒有制定了編碼:
比如:

CREATE DATABASE sample

CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
DEFAULT COLLATE utf8_general_ci ;

詳情請見:mysql中文乱码终结: http://blog.chinaunix.net/u/21684/showart.php?id=356087[/img]
附件
示例图
示例图
我很敏捷,我是网上的蜘蛛;我很茫然,我是网中的猎物!
欢迎到我的Blog※代码回音※
头像
sense
帖子: 308
注册时间: 2007-02-14 13:54

#2

帖子 sense » 2007-10-08 9:56

我用的是 utf-8,mysql 无需设置就可以用中文了
回复