在 phpmyadmin 中更改默认排序规则
Posted
技术标签:
【中文标题】在 phpmyadmin 中更改默认排序规则【英文标题】:change default collation in phpmyadmin 【发布时间】:2010-09-14 07:11:48 【问题描述】:在我看来,phpMyAdmin 默认使用排序规则 latin1_swedish_ci 导入表,我该如何更改?
【问题讨论】:
This answer shows how to change it from phpMyAdmin. @Gary 它没有,它只显示如何更改现有数据库的排序规则。 【参考方案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:
您需要有权访问 MySQL 配置文件。
位置可以从/etc/mysql/my.cnf
到~/my.cnf
(用户目录)不等。
在[mysqld]
部分添加以下行:
collation_server = utf8_unicode_ci
character_set_server=utf8
重启服务器:
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 在重启时重置了配置。我通过以下帖子解决了这个问题:***.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
XAMPP - Apache Virtual Host Setting XAMPP security concept - Error 403,404【讨论】:
【参考方案7】:-
将此字符串插入
my.ini
(或my.cnf
)
[mysqld]
collation_server = utf8_unicode_ci
character_set_server=utf8
-
加入
config.inc.php
$cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
您需要重新启动 MySQL 服务器并删除 cookie、位于域的数据 PhpMyAdmin
使用 PhpMyAmdin 重新加载页面并查看结果
【讨论】:
【参考方案8】:我想改用utf8mb4,配置必须如下:
collation_server = utf8mb4_general_ci
character_set_server=utf8mb4
如果 character_set 设置为utf8
,服务器将不会启动
【讨论】:
以上是关于在 phpmyadmin 中更改默认排序规则的主要内容,如果未能解决你的问题,请参考以下文章
如何在不转换列的情况下更改 MySQL 中的表(默认)排序规则[重复]
“非法混合排序规则”错误与 phpMyAdmin 的库存安装
如何在 PHPMyAdmin 中为表设置默认排序(即始终“主键 - 降序”)
utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则