最近在学习MYSQL时遇到了不能存储中文的问题,在网上找了很多类似的方法,最后都失败了(失败原因:修改完my.cnf文件后mysql server重新启动失败),濒临崩溃的时候重装了下mysql(Ubuntu重装mysql)然后用以下方法走了一遍就解决了。
?
造成MYSQL存储中文乱码的原因是编码格式不一致导致乱码,如何去查看编码是否一致呢?
首先进入mysql服务器:
~$ mysql -u root -p******//“*”号处输入密码,与p之间没有空格;
?查看当前数据库相关编码集:
show variables like '%char%'; (注意最后有分号!) +------------------------------+---------------------------------+| Variable_name | Value |+------------------------------+---------------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+------------------------------+---------------------------------+8 rows in set (0.00 sec)
?如何去修改成一致的编码格式呢?
?Ctrl+C退出mysql服务器。
?用vi或者gedit打开MYSQL配置文件my.cnf,并添加内容:
~$ sudo vi /etc/mysql/my.cnf //用vi打开~$ sudo gedit /etc/mysql/my.cnf //用gedit打开在[client]标签下,增加客户端的字符编码[client]default-character-set=utf8在[mysqld]标签下,增加服务器端的字符编码[mysqld]character-set-server=utf8collation-server=utf8_general_ci
?修改完后,重新启动MYSQL服务器:
~$ sudo /etc/init.d/mysql restart
?再次进入mysql服务器,查看编码集,出现如下结果表示You succeed:
+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+8 rows in set (0.00 sec)
?
?