【发布时间】:2014-03-15 02:09:25
【问题描述】:
我正在尝试使用 phpMyAdmin 访问远程 MySQL 数据库,因此我创建了一个 config.inc.php 文件(复制 config.sample.inc.php)并添加了一个服务器。现在,这台服务器在登录页面中显示为一个选项,但连接时我收到此错误:MySQL 说 #1115 - 未知字符集:'utf8mb4'。 有解决方法吗? 有我可以设置的配置吗? 任何帮助都非常感谢。
【问题讨论】:
我正在尝试使用 phpMyAdmin 访问远程 MySQL 数据库,因此我创建了一个 config.inc.php 文件(复制 config.sample.inc.php)并添加了一个服务器。现在,这台服务器在登录页面中显示为一个选项,但连接时我收到此错误:MySQL 说 #1115 - 未知字符集:'utf8mb4'。 有解决方法吗? 有我可以设置的配置吗? 任何帮助都非常感谢。
【问题讨论】:
与 phpMyAdmin 4.1.x 和 MySQL
安装phpMyAdmin 4.0.x
【讨论】:
编辑以下文件:
<install path>/libraries/DatabaseInterface.class.php
<install path>/libraries/mysql_charsets.lib.php
并将“utf8mb4”的所有实例更改为“utf8”。
这似乎对我有用。
【讨论】:
打开
C:\wamp\apps\phpmyadmin4.1.14\libraries\DatabaseInterface.class.php
搜索'utf8mb4' 并将其替换为'utf8' 连续两行,如下所示
$default_charset = 'utf8';
$default_collation = 'utf8_general_ci';
【讨论】:
使用 firefox,如果你可以忍受的话。
我只在一个使用 Chrome 的数据库上收到此错误。 Firefox 运行良好。 Chrome 甚至可以很好地处理 faled 数据库的主/主副本。
上面提到的 DatabaseInterface.class.php 中的编辑解决了 Chrome 的问题。
【讨论】:
如果您已经编辑了RAHUL-BHOLA 和Shane 的答案中提到的文件中的行:
<install path>/libraries/DatabaseInterface.class.php
<install path>/libraries/mysql_charsets.lib.php
并且仍然收到此错误,并且您正在将数据库从一个 phpMyAdmin 安装导出到另一个 phpMyAdmin 安装,您可以通过删除 .sql 导出文件中的以下行来修复该错误:
/*!40101 SET NAMES utf8mb4 */;
【讨论】:
如果您也想强制导出。您必须编辑文件:
<install path>/libraries/plugins/export/ExportSql.class.php
并注释掉以下内容(从第 740 行开始):
if ($set_names == 'utf8' && PMA_MYSQL_INT_VERSION > 50503) {
$set_names = 'utf8mb4';
}
这将强制 SQL 中的导出成为您想要的。但你必须首先对文件进行更改(如前所述)
<install path>/libraries/DatabaseInterface.class.php
<install path>/libraries/mysql_charsets.lib.php
phpmyadmin 中的新强制编码令人头疼,因为并非所有虚拟主机都进行最近更新。这样的愚蠢设计!
【讨论】:
我发现更改位于以下文件中的部分代码:
<install path>/libraries/DatabaseInterface.class.php
<install path>/libraries/plugins/export/ExportSql.class.php
来自
PMA_MYSQL_INT_VERSION > 50503
到
PMA_MYSQL_INT_VERSION > 55503
成功了
【讨论】:
我已经通过替换 utf8mb4' to 'utf8'. 更新了我导出的 sql 文件
它对我有用。这是由于mysql版本不正确造成的。
【讨论】:
导出旧数据库时的更改: 数据库系统或较旧的 MySQL 服务器,以最大限度地与 ->mysql 4
输出兼容性就是这样
【讨论】: