问题描述
提示:这里描述具体问题:
在ubuntu20.04中安装mysql5.7在mysql终端中无法输入中文,网上搜索的好多方法都无效。
mysql5.7输入中文错误提示:
mysql> INSERT INTO test(id, ad) VALUES (1,'萨达');
ERROR 1366 (HY000): Incorrect string value: '\xE8\x90\xA8\xE8\xBE\xBE' for column 'ad' at row 1
无效方法:设置字符集。
vim /etc/mysql/my.cnf
#文件中增加如下内容
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
重启:无效
修改数据库字符集:
mysql> show variables like 'char%';
显示:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
把里面的latin1 设置为utf8。方法自己搜,结果是无效。
重启:无效。
不能插入中文,mysql控制端也不能输入中文。
原因分析:
提示:这里填写问题的分析:
1.mysql终端不能插入中文原因是mysql与ubuntu不兼容。网上有说升级mysql到8就可以了,本人没有实践,不知道结果。
2.mysql数据表不能插入中文原因是表的字符集不对。
ysql> SHOW FULL COLUMNS FROM test;
+-------+------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Defaul