不讨论为什么用命令行不用链接工具了
一、问题现象:
+-------------+-----------+----------------+
| COLUMN_NAME | DATA_TYPE | COLUMN_COMMENT |
+-------------+-----------+----------------+
| id | bigint | |
| created_at | datetime | |
| updated_at | datetime | |
| deleted_at | datetime | |
| name | longtext | ?? | //问号其实是“姓名”
| age | tinyint | |
| gender | tinyint | |
| class | tinyint | |
| grade | longtext | |
+-------------+-----------+----------------+
二、问题分析:
mysql> show variables like'character_set_%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 | //客户端字符集不是utf8
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
发现client字符集不对,之前有看过一篇文章,客户端、服务端、数据库三者的字符集应一致,建立数据库用的字符集是,utf8mb4
三、解决方法:
mysql> set names utf8mb4;
Query OK, 0 rows affected (0.01 sec)
mysql> show variables like'character_set_%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb4 | //已修改
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)
+-------------+-----------+----------------+
| COLUMN_NAME | DATA_TYPE | COLUMN_COMMENT |
+-------------+-----------+----------------+
| id | bigint | |
| created_at | datetime | |
| updated_at | datetime | |
| deleted_at | datetime | |
| name | longtext | 姓名 | //显示正常
| age | tinyint | |
| gender | tinyint | |
| class | tinyint | |
| grade | longtext | |
+-------------+-----------+----------------+
9 rows in set (0.00 sec)