当前位置: 首页 > 面试题库 >

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

公西星文
2023-03-14
问题内容

我有一个MySQL转储,尝试将其恢复为:

mysql -u"username" -p"password" --host="127.0.0.1" mysql_db < mysql_db

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

ERROR 1115 (42000) at line 3231: Unknown character set: 'utf8mb4'

这是第3231-3233行:

/*!50003 SET character_set_client  = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection  = utf8mb4_general_ci */ ;

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


问题答案:

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

然后,错误就很明显了:您在代码中设置了某个字符集,但是您的mysql版本不支持该字符集,因此对此一无所知。

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

utf8mb4是utf8的超集

因此,也许您可​​以将其设置为utf8,闭上眼睛并抱有希望,但这取决于您的数据,我不建议这样做。



 类似资料:
  • 问题内容: 我有一个连接到服务器的Java客户端应用程序。客户端和服务器都在docker容器中运行。 我注意到官方mysql Docker镜像最近更新了mysql服务以运行 由于此更改,我的Java客户端应用程序无法连接到mysql实例;它失败,并显示以下错误: 我不拥有Java客户端应用程序的源代码,因此无法轻松升级它正在使用的JDBC驱动程序(即)。 这与以前运行mysqld的docker镜像

  • 问题内容: 我从文件中读取了编码为“ UTF-8”的字符串。我需要将其与表达式匹配。文件的第一个字符为,但字符串中的第一个字符为(空符号)。我已经将其翻译为具有字符集“ UTF-8”的字节,这里是。有谁知道它是什么以及如何使用正则表达式解决它? 问题答案: 一些编辑器(如记事本)在保存UTF-8文本时会添加BOM(字节顺序掩码)签名。从此类文件中读取字符串之前,应检查0xEF,0xBB,0xBF字

  • 问题内容: preg_replace(‘/http:///ftp:///', ‘https://’, $value); 和内应改为 此代码给出错误: 什么是此任务的真正正则表达式? 问题答案: 尝试使用其他定界符,例如: 或(不建议使用)对正则表达式中每次出现的定界符进行转义: 另外,您正在搜索的确没有太大意义的模式,可能就是您的意思。 您可以将正则表达式缩短为: 了解错误: 在您的regex中,

  • 跟踪日志 Trace“:”java.lang.nullpointerException\r\n\tat org.apache.solr.handler.component.querycomponent.mergeids(querycomponent.java:1115)\r\n\tat org.apache.solr.handler.component.component.1115)\r\n\ta

  • 问题内容: 这个psql会话代码段应该是不言自明的: 问题是Postgres函数不喜欢字段类型,但是根据文档,此调用应该是完全正确的吗? 问题答案: 使用显式类型转换: 或更改列输入。 为什么? Postgres允许函数重载。函数签名是由它们的(可选的,由 模式 限定的) 名称 加上 输入参数类型 (的列表)定义的。期望类型的2参数形式 作为第一个参数: 如果没有现有函数 完全 匹配,则“函数类型

  • 为什么程序不起作用?当我在第一个问题上输入'1',然后在第二个问题上输入一些东西时,出现了一个红色文本:(程序没有完成,但它应该能工作,不是吗?) 线程“main”Java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0在Java.lang.String.Charat(String.Java:658)在javaApplication2.javaAp