版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cx55887/article/details/84131536
在工作学习中遇到出现中文乱码是一件非常让人头疼的一件事,我也深受其害,在这里我整理了一下在使用mysql时候出现乱码的解决步骤,大家共同学习,共同进步。
一、确认各环节的字符集
首先来确定一下各个环节的字符集是否一致,字符集不一致导致的乱码问题最为常见。
1. 确认当前Xshell连接linux的绘画所使用的字符集类型
2. 确认当前linux系统的字符集
# locale:查看当前系统的字符集
# locale -a:查看系统全部可用的字符集
# locale -a | grep zh_CN:查看中文类型的字符集
和字符集相关的变量:LANG
# echo $LANG
临时修改linux字符集
# export LANG=zh_CN.utf8
永久修改linux字符集
(1) echo "export LANG=zh_CN.utf8" > ~/.bashrc
(2) CentOS7修改文件 /etc/locale.conf
CentOS6修改文件 /etc/sysconfig/i18n
3. 确认和mysql相关的字符集
mysql> status <<<查看各种字符集信息
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
#查看创建表tb2的时候所使用的字符集
mysql> show create table tb2\G
#查看创建库db2的时候所使用的字符集
mysql> show create database db2\G
#修改mysql server字符集类型
在my.cnf中的mysqld段添加 character-set-server = utf8
修改一个表的字符集
ALTER TABLE tb1 CONVERT TO CHARACTER SET ;
二、修改一个数据库的字符集
修改数据库的字符集我一般是先将这个数据库中的内容备份出来,然后新建一个数据库,显得数据库使用期望使用的字符集类型,最后将备份数据导入到这个新的数据库中。
1. 备份原有数据
# mysqldump --default-character-set=gbk -uroot -p123 -B db4 --tables tb4>/home/old.sql
【可以用vim查看其中是否有乱码】
2. 修改备份文件中的数据字符集类型
# iconv -t utf-8 -f gbk -c /home/old.sql >/home/new.sql
【可以用vim查看其中是否有乱码】
3. 用新的字符集仙剑一个数据库,并将备份文件导入进去
mysql> create database db5 character set utf8;
# mysql -uroot -p123 db5</home/new.sql
------做运维之前很矫情的小年轻-----