首页 文章

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

提问于
浏览
25

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

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

一切都适合我的本地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';
        }

不知道这是什么,但它似乎错误地设置了默认的charset&collation

6 回答

  • 64

    This solution worked for me

    1)单击数据库的“导出”选项卡

    2)单击“自定义”单选按钮

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

    4)滚动到底部,然后单击“开始” .

    如果它与wordpress有关,more info就是为什么会发生这种情况 .

  • 10

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

    仅删除cookie:

    • 按住ctrl shift删除

    • 删除除Cookie之外的所有复选框

    • 使用顶部的下拉菜单选择“从开始时间开始

    • 点击清除浏览数据

  • 4

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

    首先编辑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';
        //}
    

    然后从浏览器"pma_collation_connection"删除此cookie .
    或删除所有Cookie .

    然后重新启动phpMyAdmin .

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

  • 3

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

  • 27

    我昨天读过这个问题是因为那个人清除了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 为我解决了这个问题 .

  • 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

相关问题