远程Linux服务器修改Mysql数据库编码及解决编码修改后Mysql无法启动的问题

时间:2021-05-22 06:18:01
在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 导入。对于已经存在的数据库,可以直接修改其字符集。