ERROR 1115(42000):未知字符集:'utf8mb4'

sar*_*mar 51 mysql sql character-encoding utf8mb4

我有一个MySQL转储,我试图恢复:

mysql -u"username" -p"password" --host="127.0.0.1" mysql_db < mysql_db
Run Code Online (Sandbox Code Playgroud)

但是,这引发了一个错误:

ERROR 1115 (42000) at line 3231: Unknown character set: 'utf8mb4'
Run Code Online (Sandbox Code Playgroud)

这是第3231-3233行:

/*!50003 SET character_set_client  = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection  = utf8mb4_general_ci */ ;
Run Code Online (Sandbox Code Playgroud)

我正在使用MySQL 5.1.69.我该如何解决这个错误?

Nan*_*nne 68

您的版本不支持该字符集,我相信它是5.5.3引入它的.您应该将mysql升级到用于导出此文件的版本.

错误很明显:你在代码中设置了一个特定的字符集,但你的mysql版本不支持它,因此不知道它.

根据https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html:

utf8mb4是utf8的超集

所以也许你有可能只是把它变成utf8,闭上你的眼睛和希望,但这取决于你的数据,我不推荐它.

  • 只需将utf8mb4更改为utf8.It正常工作.谢谢@Nanne :-) (23认同)

IT *_*ogs 27

你可以试试:

通过文本编辑器打开sql文件查找并替换所有

utf8mb4 to utf8
Run Code Online (Sandbox Code Playgroud)

再次导入.


wux*_*dia 9

这有助于:

mysqldump --compatible=mysql40 -u user -p DB > dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

PHPMyAdmin在'expert'导出选项中具有相同的MySQL兼容模式.虽然这有时无所作为.

如果您没有通过命令行或PHPMyAdmin访问,那么编辑

/*!50003 SET character_set_client  = utf8mb4 */ ; 
Run Code Online (Sandbox Code Playgroud)

有点读'utf8',是要走的路.