phpmysql错误 - #1273 - #1273 - 未知排序规则:'utf8mb4_general_ci'

时间:2014-01-17 16:10:02

标签: php mysql phpmyadmin collation

我刚刚安装了PhpMyAdmin v4.1.5英文

我已将其设置为访问2台服务器 - 我的PC上的本地服务器和服务器上的远程服务器

对我的本地电脑来说一切都很好但是当我登录到我的远程服务器时,我收到了消息

错误

MySQL说:

  

#1273 - 未知校对:'utf8mb4_general_ci'

搜索PhpMyAdmin代码在DatabaseInterface.class.php中找到对此的一个引用

        if (PMA_MYSQL_INT_VERSION >  50503) {
            $default_charset = 'utf8mb4';
            $default_collation = 'utf8mb4_general_ci';
        } else {
            $default_charset = 'utf8';
            $default_collation = 'utf8_general_ci';
        }

不知道这是什么,但似乎是设置默认字符集&整理错误

6 个答案:

答案 0 :(得分:64)

This solution worked for me

1)点击"导出"数据库的选项卡

2)点击"自定义"单选按钮

3)转到标题为"格式特定选项"并更改"数据库系统或较旧的MySQL服务器的下拉列表,以最大化输出兼容性:"从NONE到MYSQL40。

4)滚动到底部,然后点击" GO"。

如果它与wordpress有关,请more info说明原因。

答案 1 :(得分:27)

您可以通过从开头时间删除浏览器Cookie来解决此问题。我试过这个,它对我来说很好。

仅删除Cookie:

  1. 按住ctrl + shift + delete
  2. 删除当然除了Cookie之外的所有复选框
  3. 使用顶部的下拉菜单从时间开始选择"
  4. 点击清除浏览数据

答案 2 :(得分:10)

有两个步骤可以解决这个问题。

首先编辑phpMyAdmin / libraries / DatabaseInterface.class.php

变化:

    if (PMA_MYSQL_INT_VERSION >  50503) {
        $default_charset = 'utf8mb4';
        $default_collation = 'utf8mb4_general_ci';
    } else {
        $default_charset = 'utf8';
        $default_collation = 'utf8_general_ci';
    }

要:

    //if (PMA_MYSQL_INT_VERSION >  50503) {
    //    $default_charset = 'utf8mb4';
    //    $default_collation = 'utf8mb4_general_ci';
    //} else {
        $default_charset = 'utf8';
        $default_collation = 'utf8_general_ci';
    //}

然后从浏览器中删除此Cookie" pma_collat​​ion_connection"。
或删除所有Cookie。

然后重新启动phpMyAdmin。

(如果phpMyAdmin允许你在config.inc.php中设置每个服务器的字符集和排序规则,那就太好了)

答案 3 :(得分:4)

导出时,请使用设置为MYSQL40的兼容性系统。为我工作。

答案 4 :(得分:3)

我昨天读过这个问题是因为那个人清除了cookie而修复的。我试过了,但它对我不起作用。

检查DatabaseInterface.class.php中的以下部分,

        define(
            'PMA_MYSQL_INT_VERSION',
            PMA_Util::cacheGet('PMA_MYSQL_INT_VERSION', true)
        );

我认为不知何故缓存是个问题。所以,我记得我正在重新启动服务而不是startstop

# restart the service
systemd restart php-fpm

# start and stop the service
systemd stop php-fpm
systemd start php-fpm

执行stop后跟start为我解决了问题。

答案 5 :(得分:0)

您的MySQL服务器版本是5.5.3还是更高版本?

  

在MySQL 5.5.3中添加了utf8mb4,utf16和utf32字符集。

http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-sets.html