有时操作mysql的时候,会出现如下错误
ERROR 1366 (HY000): Incorrect string value:
这种情况也可能会在中文数据乱码的时候存在,因为我们需要在数据库保存中文字符,所以经常遇到。
通过以下命令可以查询当前数据库的编码
show variables like 'character%';
这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。
对表增加默认编码可以保证当前表内编码
create table user(name varchar(11)) default charset=utf8;
键入以下指令可修改全局配置
# 不加global可以仅在当前窗口生效,加了global在mysql服务重启之前都生效
set global character_set_database=utf8;
set global character_set_server=utf8;
# 需要默认生效,需要加在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'
若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/%e4%bf%ae%e5%a4%8dmysql%e6%97%a0%e6%b3%95%e6%8f%92%e5%85%a5%e4%b8%ad%e6%96%87%e7%9a%84%e9%97%ae%e9%a2%98/