文章标签 ‘mysql’
两台Server,一台装有MySQL Server和Client,另一台编译安装时用 –without-server 参数只安装了Client。
前两天配置服务器的时候,小心小心再小心的注意字符集问题,认认真真的在Server端配置了my.cnf,结果还是把Client端的事给忘了。进去的数据,依旧乱码。奋战两个小时,才找到问题,解决之。总结如下:
几天前,要为公司架设Bugzilla系统,因为一个DBD::mysql的问题,花费了整整一宿的时间。该问题的解决,又是在浩瀚的英文互联网资源的帮助下得到的解决。中文资料,除了复制就是粘贴,根本没有解决问题的方法,而且按照资料根本无法安装成功,也不知道这些人是怎么弄成的。现在就做个简单的中文版的备份吧。
MySQL 4.1开始,对多语言的支持有了很大变化 (这导致了问题的出现)。尽管大部分的地方 (包括个人使用和主机提供商),MySQL 3、4.0 仍然占主导地位;但 MySQL 4.1 乃至5.0是 MySQL 官方推荐的数据库,已经有主机提供商开始提供并将会越来越多;因为 latin1 在许多地方 (下边会详细描述具体是哪些地方) 作为默认的字符集,成功的蒙蔽了许多 PHP 程序的开发者和用户,掩盖了在中文等语言环境下会出现的问题。
MySQL 4.1开始把多国语言字符集分的更加详细,所以导致数据库迁移,或则dz论坛升级到4.0后(dz4.0开始使用gbk或utf-8编码)出现乱码问题。
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
QUOTE:
mysql> SHOW VARIABLES LIKE ‘character_set_%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| [...]
