在配置LAMP服务器中,发现有些朋友装好了,但是在使用过程中,
不知道如何修改mysql编码,导致mysql不能启动或者一些项目出现乱码现象。
我这里使用CentOS5.1 和 Mysql6.0 作为演示环境。
==========================================
首先查看安装好的mysql编码,Mysql提供命令查看环境参数的工具。
[root@localhost ~]# /usr/local/bin/mysqladmin variables
这样就列出了很多参数,不过我们只找和字符编码有关的参数说明
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
上面这些才是和mysql字符编码有关的。
可以看到默认mysql编码是latin1,那么我们下面就对它修改成我们想要的。
==========================================
下面是修改成utf8编码过程(如果要修改gbk,把utf8换成gbk就可以)
在/etc目录下的my.cnf文件(此文件相当于windows中的.ini文件)
使用 vi 进去修改 vi /etc/my.cnf
找到在[mysqld]这一行下面,加入一句default-character-set=utf8即可!
保存退出 然后 重启 mysql 就可以了。很简单吧 呵呵
一般,如果你是编译安装mysql ,建议你像我下面的做法
cp /usr/local/share/mysql/mysql.server /etc/init.d/mysqld
mysql 关闭的命令为:/etc/init.d/mysqld stop
mysql 启动的命令为:/etc/init.d/mysqld start
我们再查看修改后的字符参数
#/usr/local/bin/mysqladmin variables
可以该命令列出的参数中参数如
| 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/local/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
全部已经改成uft8,则配置编码方式为utf8成功!
好了,查看和修改 mysql 数据库编码就演示到这里,
这里我还想给点意见,在项目开发过程中,我个人建议统一使用utf8编码。
如果你还在msyql编码上有什么建议或者遇到什么问题,请给作者留言,谢谢!
08月 10th, 2008 at 15:45:18 #itans
非常感谢。。。呵呵。
是我需要的。!
[回复]
12月 17th, 2008 at 16:50:53 #Websites tagged "charsets" on Postsaver
[...] - Ruby 1.9’s charsets FTW saved by eweine2008-12-02 - 轻松查看和修改MySql6.0数据库编码(Linux版本)视频演示 saved by wasigh2008-11-05 - mysql 编码问题latin1(iso8859) saved by KibaInozuka2008-10-10 - [...]
06月 11th, 2009 at 19:03:14 #joseph
请问:gbk 和gb312都报错,知道是怎么回事吗?
[回复]
adminreply on 2009-06-12 09:20:52:
这个我没有设置过,我习惯统一使用utf8,
gbk 和gb312都报错,知道是怎么回事吗?
是 gb2312 吧 ?? 是不是写错了 ?
如果都不行,可能和系统有关系的,系统可能也要支持gbk和gb2312 才能设置。
06月 12th, 2009 at 16:31:15 #joseph
查了网上的资料说,要卸载从新make。语句是:
make with_charset=gbk with_xcharset=all
make install clean
那如果这样,是不是要先卸载 mysql。(make uninstall)
configure呢?也要从做?
my.cnf呢?是不是也得改?
我不是很明白。能给我点建议么?
[回复]
adminreply on 2009-06-12 19:45:17:
如果这样的话 只能重新make 加入 gbk 还有支持所有 字符集的 参数
是 configure 的时候吧 ? with_charset=gbk with_xcharset=all
网上找找 。。。。
12月 2nd, 2009 at 17:48:20 #匿名
请问你这个 在MYSQL5。0的版本能实现吗?
[回复]
12月 2nd, 2009 at 18:12:11 #匿名
我照你的视频做了,但是出错:
091120 11:27:59 mysqld started
/usr/local/libexec/mysqld: Character set 'gbk' is not a compiled character set and is not specified in the '/usr/local/share/mysql/charsets/Index.xml' file
091120 11:27:59 [ERROR] Aborting
091120 11:27:59 [Note] /usr/local/libexec/mysqld: Shutdown complete
091120 11:27:59 mysqld ended
我的环境是在5.0的请问这是什么问题
[回复]
adminreply on 2009-12-02 19:04:36:
这个可能需要你编译安装mysql的时候加入 gbk字符集的支持。
configure 的时候 加入 with_charset=gbk with_xcharset=all 试一下。