报错信息基本是这样的。原因就是 username字段需要用mysql中的 utf8mb4 编码,这个需要mysql 5.3之后才支持,如果不是5.3以上版本 需要升级。
1. 修改数据库/表/字段的编码格式
ALTER DATABASE xxx CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE xxx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE users change username username varchar(50) character set utf8mb4 collate utf8mb4_unicode_ci;
2. 修改配置文件
my.cnf一般在/etc/mysql/my.cnf 或 /etc/my.cnf 位置。找到后请在以下三部分里添加如下内容:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
3. 重启mysql,每种安装方式的重启方式不同(可自行谷歌:mysql重启)
4. 校验字符集
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
如上图所示则此问题解决。