最近在学习MYSQL时遇到了不能存储中文的问题,在网上找了不少相似的方法,最后都失败了(失败缘由:修改完my.cnf文件后mysql server从新启动失败),濒临崩溃的时候重装了下mysql(Ubuntu重装mysql)而后用如下方法走了一遍就解决了。mysql
形成MYSQL存储中文乱码的缘由是编码格式不一致致使乱码,如何去查看编码是否一致呢?sql
首先进入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,并添加内容:spa
~$ 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=utf8 collation-server=utf8_general_ci
修改完后,从新启动MYSQL服务器:rest
~$ sudo /etc/init.d/mysql restart
再次进入mysql服务器,查看编码集,出现以下结果表示You succeed:code
+--------------------------+----------------------------+
| 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)
转载自本人ITeye连接:http://xiaozhuang0706.iteye.com/blog/2258342server