【问题标题】:phpmysql error - #1273 - #1273 - Unknown collation: 'utf8mb4_general_ci'php mysql 错误 - #1273 - #1273 - 未知排序规则:'utf8mb4_general_ci'
【发布时间】:2014-02-07 01:21:15
【问题描述】:

我刚刚安装了 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';
        }

不知道这是什么,但似乎错误地设置了默认字符集和排序规则

【问题讨论】:

  • 本地机器是否运行Windows?
  • 我在使用 linux 时遇到了同样的问题。
  • 我遇到了同样的问题,但仅限于 Firefox。使用 Chrome 可以正常工作。很奇怪吧?
  • 是的,是代码导致了问题。如果我删除 if else 条件并仅保留 else 条件内的代码,则它可以正常工作。
  • 这里是tracker中问题的链接:sourceforge.net/p/phpmyadmin/bugs/4236

标签: php mysql phpmyadmin collation


【解决方案1】:

您可以通过从一开始就删除浏览器 cookie 来解决此问题。我已经尝试过了,对我来说效果很好。

仅删除 cookie:

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

【讨论】:

【解决方案2】:

This solution worked for me

1) 点击数据库的“导出”标签

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

3) 转到标题为“特定于格式的选项”的部分,并将“数据库系统或较旧的 MySQL 服务器以最大程度地输出与以下内容的兼容性”的下拉列表从 NONE 更改为 MYSQL40。

4) 滚动到底部并点击“GO”。

如果它与 wordpress 有关,more info 说明为什么会发生。

【讨论】:

  • 也为我工作 - 谢谢 :)
  • 很好的解决方案。这对我帮助很大。
  • 非常感谢您提供的有用提示。
  • 好,任何人都知道如何在mysql工作台中做同样的事情
【解决方案3】:

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

【讨论】:

    【解决方案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_collat​​ion_connection”中删除此 cookie。
    或者删除所有 Cookie。

    然后重新启动你的 phpMyAdmin。

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

    【讨论】:

    • 删除 pma_collation_connection 已经让我的错误消失了!
    【解决方案5】:

    我昨天读到,当某人清除 cookie 时,该问题已为某人解决。我试过了,但它对我不起作用。

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

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

    我认为缓存是问题所在。所以,我记得我是在重新启动服务,而不是执行 start 和 stop。

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

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

    【讨论】:

    • 记录清除 cookie 确实对我有用
    【解决方案6】:

    您的 MySQL 服务器版本是否为 5.5.3 或更高版本?

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

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

    【讨论】:

    • 我遇到了问题,但服务器是 5.0.x。
    • 5.1.x、5.0.x 及以下没有 utf8mb4、utf16 和 utf32 字符集。
    猜你喜欢
    • 2018-01-29
    • 2017-07-12
    • 2015-07-07
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多