最近遇到了在ubuntu上安装mysql导入中文乱码问题,解决在这里记录一下。
导致导入文乱码的原因是character_set_server默认设置latin1.
可以进入mysql shell 查看,先启动mysql 服务:
$ sudo service mysql start
通过下面命令进入mysql sell:
$ mysql -u root -p
在mysql sehll输入以下命令看编码格式:
mysql> show variables like "char%";
第一种方法: 可以直接在mysql sehll修改编码格式:
mysql> set charcater_set_server=utf8;
但是重启会失效这里说的失效的 出了mysql shell 界面就是失效。
第二种方法:
修改配置文件:
在ubuntu 14.04 和ubuntu 16.04 配置文件的位置和名字都不一样,这里分别给出。
在ubuntu 14.04 中的配置文件为my.cnf,输入以下命令进入:
$ sudo gedit /etc/mysql/my.cnf
在ubuntu 16.04 中的配置文件为my.cnf,输入以下命令进入:
$ sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
但是他们修改的方式都是一样的,接下来进入文件后会找到:
在下面添加一行character_set_server=utf8;下面是配置文件,粘贴出来的。
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql character_set_server=utf8 #加入这一行设置character_set_server编码格式 skip-external-locking
保存后,重启mysql服务:
$ sudo /etc/init.d/mysql restart
进入mysql shell命令行,查看发现编码格式更改了: