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

时间:2018-10-10作者:klpeng分类:IT综合浏览:2179评论:0

写在前面

   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

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

 1.1输入mysql数据库密码

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

 

第二步查看mysql数据库编码

mysql> show variables like '%char%';

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

以上为正确的。

退出

mysql> exit;

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

数据库编码异常

问题1:

查看数据库编码:

mysql> show variables like '%char%';

结果如下(问题1):

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

针对问题1:解决办法两种A,B取其一

方式(A)

sql>set character_set_server=utf8;
sql>set character_set_database=utf8;
sql>show variables like '%char%';

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

方式(B)

修改配置文件:

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

需要在红色标记的文件夹下修改配置文件如下:

1) vim /etc/mysql/conf.d/mysql.cnf添加如下内容:
[client]
default-character-set=utf8

结果如下:

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

2) vim  /etc/mysql/mysql.conf.d/mysqld.cnf 添加如下内容

找到[mysqld]然后在skip-external-locking这行代码下面添加

character-set-server=utf8
init_connect= SET NAMES utf8
 

ubuntu16.04下mysql5.7中文乱码解决并修改字符集为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文件

 

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢