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,闭上你的眼睛和希望,但这取决于你的数据,我不推荐它.
IT *_*ogs 27
你可以试试:
通过文本编辑器打开sql文件查找并替换所有
utf8mb4 to utf8
Run Code Online (Sandbox Code Playgroud)
再次导入.
这有助于:
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'
,是要走的路.