写在前面
1.数据库编码正确状态
2.数据库编码状态异常
方式1):通过sql语句设置字符集
方式2):修改配置文件vim /etc/mysql/conf.d/mysql.cnf和vim /etc/mysql/mysql.conf.d/mysqld.cnf
3.数据库,表,表字段字符集异常
3.1数据库库,表字符集直接通过工具修改为utf8
3.2表字段字符集异常
数据库正确状态
第一步 登录mysql
root@VM-0-6-ubuntu:~# sudo mysql -u root -p
1.1输入mysql数据库密码
第二步查看mysql数据库编码
mysql> show variables like '%char%';
以上为正确的。
退出
mysql> exit;
数据库编码异常
问题1:
查看数据库编码:
mysql> show variables like '%char%';
结果如下(问题1):
针对问题1:解决办法两种A,B取其一
方式(A)
sql>set character_set_server=utf8;
sql>set character_set_database=utf8;
sql>show variables like '%char%';
方式(B)
修改配置文件:
需要在红色标记的文件夹下修改配置文件如下:
1) vim /etc/mysql/conf.d/mysql.cnf添加如下内容:
[client]
default-character-set=utf8
结果如下:
2) vim /etc/mysql/mysql.conf.d/mysqld.cnf 添加如下内容
找到[mysqld]然后在skip-external-locking这行代码下面添加
character-set-server=utf8
init_connect= SET NAMES utf8
最后重启:sudo service mysqld restart
root@VM-0-6-ubuntu:~# sudo service mysqld restart
数据库,表,表字段字符集异常
3.1数据库库,表字符集直接通过工具修改为utf8,这里就不在累赘
3.2表字段字符集异常
第一步:先用工具导出sql语句,然后打开sql语句查看字符集是否正确,如果不是utf8,请继续往下看
如下:红色部分
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(50) CHARACTER SET utf8 DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第二步:如果不是utf8,请替换为utf8
第三步:用工具删除数据库原表,重新导入修改后的sql文件