MySQL基础配置之mysql默认字符编码的设置

准备用PHP写一个留言板锻炼锻炼,满怀激情做了一天,到用mysql建立数据库的时候,发现新建表的编码为Latin1,中文全是乱码。网上查了一个晚上的资料,试了多种方法都不行。弄到0点钟,实在没脾气了,直接上床睡觉。
今早继续,终于找到了解决的方法。发现原来跟昨天查的资料就那么一点点的差距,原因竟然是我的mysql版本太新了(5.5.25a),泪奔……
那么究竟是如何修改的呢?请看下面(本人为windows系统):
0、终止mysql服务
1、打开mysql配置文件:mysql/bin/my.ini。如果没有就把my-medium.ini复制为一个my.ini即可
2、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭(mysqld中增加如果出错,可以尝试试character-set-server=utf8
(问题就在这儿,我的只能使用character-set-server=utf-8。原因是:参数“default-character-set=utf8”在较新版本的MySQL 中已移除。)
3、启动mysql服务
4、用命令   SHOW VARIABLES LIKE 'character%';  可以查询到mysql编码的方式。修改成功后如下:

Variable_nameValue
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 D:\Program\Web\Wamp\mysql\share\charsets\

(刚刚发现在phpmyadmin中用这条命令的时候,value的值可以修改。不知道这样是否可行,下次出现编码问题考虑一下)

以备不时之需,附上Linux下mysql的解决方法:
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8(不知道会不会出现我的问题),保存并关闭
4、启动MySQL服务(bin/mysqld_safe &)

非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置

posted @ 2012-09-21 10:27  尾翼 | Felix  阅读(257)  评论(0编辑  收藏  举报