Ubuntu下安装mysql及中文乱码解决
mysql安装
sudo apt-get install mysql-client
sudo apt-get install mysql-server
在安装过程中要输入root密码;
登录mysql
mysql -u root -p
输入密码进入mysql:
mysql>
查看并修改编码方式
mysql>show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
默认是latin1,不支持中文, 修改如下;
mysql> SET character_set_database = utf8;
mysql> SET character_set_server = utf8;
查看一下现在mysql的编码
mysql>show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
也可以修改/etc/mysql/my.cnf,但是我修改之后无法启动mysql
运行脚本文件时注意
如果运行脚本.sql时要注意脚本文件中的编码格式(一般windows是gbk)所以要读取gbk的文件,要对应设置,这样才能正确读取脚本文件;
mysql> SET names gbk;
之后在设置如下,就可以正确读取表和显示中文了;
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
字符集解释
mysql的字符集分为几类:
- A.客户端字符集:通过系统变量”character_set_client“表示,通知server端,客户端提交的sql语句编码格式
- B.连接字符集:通过系统变量”character_set_connectiont“表示,server端翻译sql语句时,使用的编码格式
- C.结果集字符集:通过系统变量”character_set_results“表示,server端返回结果集之前把结果集转换成的编码格式
- D.存储字符集:通过系统变量”character_set_results“和“character_set_server”表示,是数据在存储引擎里编码格式