ubuntu16.04下mysql5.7中文乱码解决并修改字符集为utf8

版权声明:转载请说明出处 https://blog.csdn.net/weixin_39842528/article/details/82991091

写在前面

   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文件

猜你喜欢

转载自blog.csdn.net/weixin_39842528/article/details/82991091