开发环境
Ubuntu 16.10
mysql: 5.7.17
设置默认编码格式
[mysql]
default-character-set=utf8
安全更新, 防止全表更新
SET sql_safe_updates=1;
SET sql_safe_updates=1, sql_select_limit=500, max_join_size=1000000;
关于 test
数据库
默认情况下,mysql.db表中包含的行表示任意用户可以访问test数据库和test_开头的数据库。
这些行的User字段的值为空,表示匹配任意用户。
这意味着这些数据库(test数据库和test_开头的数据库)默认可以被任意用户使用(即使没有权限的用户)。
设置数据库编码 set names utf8;
^1
mysql> show variables like "character_set_%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| 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.05 sec)
mysql>
在默认情况下,mysql字符集为latin1,而执行了
set names utf8;
以后,character_set_client
、character_set_connection
、character_set_results
等与客户端相关的配置字符集都变成了utf8
,但character_set_database
、character_set_server
等服务端相关的字符集还是latin1。
Mysql的utf8其实是阉割版utf-8编码,Mysql中的utf8字符集最长只支持
三个字节
如果你需要Mysql支持四字节的utf-8,可以使用 utf8mb4 编码。