2011年9月9日星期五

Linux下永久修改mysql字符集


1. 查看字符集支持
show character set;
2 .相看字符集相关变量
show variables like "character_set%";
3. 设置默认字符集
MySQL默认安装使用的字符集是latin1
为解决乱码问题,最简单的办法就是修改默认字符集。
MySQL 5.1 linux(
5.1.63-0ubuntu0.10.04.1)版本为例,修改默认字符集为utf8:
修改/etc/mysql/my.cnf
找到客户端配置[client] 在下面添加
default-character-set=utf8 #默认字符集为utf8
[mysqld]下加上:
default-character-set=utf8
init_connect='SET NAMES utf8' #设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行
[mysql]下加上:
default-character-set=utf8

4 .linux下启动、停止与重启
/etc/init.d/mysql start/stop/restart

问题:无法用上述命令启动、停止与重启mysql 。出现以下的提示信息
Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service mysql stop

Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the stop(8) utility, e.g. stop mysql
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.63" (uid=1000 pid=10142 comm="stop) interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init"))

于是参照提示使用以下命令行来重启、启动、停止Mysql
sudo restart mysql #重
sudo start mysql #启动
sudo stop mysql #停止




重新打开终端查看,可以看到字符集相关变量已经变成utf8