Error number: MY-010771; Symbol: ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT; SQLSTATE: HY000
Message: Unable to identify the charset in %s. Using default character set.
错误说明:
MY-010771(ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT)表明当MySQL试图在使用的defaults-file未能表现指定字符集时,MySQL server出错了。
MY-010771(ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT)错误通常发生在使用正确defaults-file连接MySQL server,但无法指定有效字符集时。
解决方法:
关于MY-010771(ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT)错误,相关解决方法主要是:
1、在defaults-file文件里属性加上default-character-set=utf8mb4,或者加上default-collation=utf8mb4_general_ci。
2、如果你使用root账号连接MySQL,加上–character-set-server=utf8mb4,或者–default-collation=utf8mb4_general_ci参数。
3、在defaults-file里设置的default-character-set的字符集必须正确,如果不正确可以添加一行:character_set_server=utf8
4、如果defaults-file文件中未指定有效的字符集,可以修改my.cnf文件,指定一个默认的:[client]default-character-set = utf8
5、如果my.cnf文件中未设置有效的字符集,可以尝试在命令行环境下使用set命令指定默认字符集:set NAMES UTF8。
6、在my.cnf文件中加入[client]port=3306或者[client]protocol=tcp。
7、如果连接MySQL服务器时使用了小写属性,例如使用port而非Port或无connection-attributes,把上述小写属性改为正确的大写属性,例如把port改为Port,或添加connection-attributes属性。
8、在my.cnf文件中添加[mysql]default-auth=mysql_native_password,这样MySQL会使用native_password插件。
9、在my.cnf文件中添加如下内容,即socket文件路径:
[client]
socket=/tmp/mysql.sock
10、如果没有特殊设置,可以尝试使用默认的host和port参数,例如:host=localhost,port=3306
最后,如果你仍然无法解决MY-010771(ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT)错误,则建议检查MySQL服务器本身是否正常,再进行确认。