【问题标题】:change default collation in phpmyadmin在 phpmyadmin 中更改默认排序规则
【发布时间】:2010-09-14 07:11:48
【问题描述】:

在我看来,phpMyAdmin 默认使用排序规则 latin1_swedish_ci 导入表,我该如何更改?

【问题讨论】:

标签: mysql phpmyadmin


【解决方案1】:

在您的 Mysql 配置中,更改 [mysqld] 选项卡下的默认字符集操作。例如:

[mysqld]
default-character-set=utf8

之后不要忘记重新启动你的 Mysql 服务器以使更改生效。

【讨论】:

  • 这在 debian 的 5.5.28-1-log 中无效,default-character-set 是无效值。
  • 上述解决方案无效,我这样做了:[mysqld] character-set-server=utf8 collation-server=utf8_general_ci
【解决方案2】:

对于 Linux:

  1. 您需要有权访问 MySQL 配置文件。
    位置可以从/etc/mysql/my.cnf~/my.cnf(用户目录)不等。

  2. [mysqld]部分添加以下行:

    collation_server = utf8_unicode_ci
    character_set_server=utf8
    
  3. 重启服务器:

    service mysqld restart
    

【讨论】:

    【解决方案3】:

    这不是一个 phpMyAdmin 问题。

    排序规则是最近 MySQL 版本的一部分,您必须设置服务器(或至少是数据库)的默认排序规则才能更改该行为。

    要将已导入的表转换为 UTF-8,您可以执行以下操作(在 PHP 中):

    $dbname = 'my_databaseName';
    mysql_connect('127.0.0.1', 'root', '');
    mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
    $res = mysql_query("SHOW TABLES FROM `$dbname`");
    while($row = mysql_fetch_row($res)) {
       $query = "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
       mysql_query($query);
       $query = "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
       mysql_query($query);
    }
    echo 'all tables converted';
    

    代码 sn-p 取自 here

    【讨论】:

      【解决方案4】:

      知道这是一篇旧帖子。但是我通过 phpMyAdmin 更改默认字符集的方式是:

      phpMyadmin 主页 > 变量选项卡(服务器变量和设置) > 搜索“字符”并将所有变量从“latin1”更改为“utf8”。 (使用 phpMyAdmin v. 3.5.7 安装 MAMP)

      正如其他人所说,这是 MySQL 的变量,而不是某些 phpMyAdmin 特定的变量。

      【讨论】:

      • 它会持续到下一次 WAMP 重启。如何保存这些设置?
      • 我在回答这个问题时使用的是 MAMP,不确定 MAMP 和 WAMP 的配置方式是否相同。但是我不再使用那些安装了,我是从头开始制作的。也许其他人可以提供帮助??
      • 刚刚再次进入 Windows,也遇到了上述问题,wamp 在重启时重置了配置。我通过以下帖子解决了这个问题:stackoverflow.com/a/14194212/900774
      【解决方案5】:

      对于utf8mb4,在[mysqld] 部分添加/更改以下内容:

      collation_server = utf8mb4_unicode_ci
      character_set_server = utf8mb4
      

      然后重启mysql服务(对于Ubuntu,命令是sudo service mysql restart

      【讨论】:

        【解决方案6】:

        MySQL DB « 将 Collation 数据库名称|表更改为 utf8_general_ci 以支持 Unicode。

        同时更改配置设置文件


        XAMPP: 从配置设置文件中取消注释UTF 8 Settings « D:\xampp\mysql\bin\my.ini

        ## UTF 8 Settings
        #init-connect=\'SET NAMES utf8\'
        collation_server=utf8_unicode_ci
        character_set_server=utf8
        skip-character-set-client-handshake
        character_sets-dir="D:/xampp/mysql/share/charsets"
        

        让 MySQL 服务器支持 UTF8 和文件 my.cnf 中的以下代码行

        ## UTF 8 Settings
        collation_server=utf8_unicode_ci
        character_set_server=utf8
        

        @see

        【讨论】:

          【解决方案7】:
          1. 将此字符串插入my.ini(或my.cnf
          [mysqld]
          collation_server = utf8_unicode_ci
          character_set_server=utf8
          
          1. 加入config.inc.php
          $cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
          
          1. 您需要重新启动 MySQL 服务器并删除 cookie、位于域的数据 PhpMyAdmin

          2. 使用 PhpMyAmdin 重新加载页面并查看结果

          【讨论】:

            【解决方案8】:

            我想改用utf8mb4,配置必须如下:

            collation_server = utf8mb4_general_ci
            character_set_server=utf8mb4
            

            如果 character_set 设置为utf8,服务器将不会启动

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-08-24
              • 2010-10-19
              • 1970-01-01
              • 1970-01-01
              • 2010-11-10
              • 2018-12-19
              • 2011-02-19
              相关资源
              最近更新 更多