在Linux服务器上安装Mysql后,其默认的字符编码为latin1,为了使用中文,需要修改其默认字符集,修改过程如下:
(1):将/usr/share下的 my-large.cnf拷贝到/etc下(使用命令 cp /user/share/my-large /etc/my.cnf)
(2):使用VI编辑器打开刚复制的my.cnf,在[client]、[myslqd]下各添加一句:
default-character-set=utf8
保存并退出,重启mysql服务:service mysql restart
有些情况下,修改完my.cnf并重启mysql服务时,会遇到启动不成功的情况,提示Starting MySQL.....The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid),此时有两种解决方法:
(1);使用命令 lsof -i:3306,如果有进程,则通过kill pid将其进程结束,然后重启mysql
(2):如果通过 lsof -i:3306没有查看到进程,则将my.cnf中[mysqld]]下的default-character-set=utf8修改 为character-set-server=utf8,然后重启mmysql服务即可。
此种方法只对修改字符集以后创建的数据库有效,对于之前创建的数据库:
数据库的字符集采取的顺序是:
(1)字段级指定的字符集;create table c (a varchar(20) character set gbk)
(2)若字段未指定,则采用创建表时指定的字符集;create table c(a varchar(20)) charset gbk;
(3)如果表未指定,则采用创建数据库时指定的字符集;create database d charset gbk;
(4)如果数据库未指定,则采用数据库服务器指定的字符集,即数据库配置文件中设置的字符集
根据以上原则,对于已经存在的表,查看字段级、表级的字符集,如果是latin1,则新建数据库,按latin1导出,gbk 导入。对于已经存在的数据库,可以直接修改其字符集。