首次安装WAMP后访问phpMyAdmin首页遇#1273错误的适配方案咨询
嘿,我来帮你捋清楚这个问题~
首先,先拆解下你遇到的错误本质:#1273 - unknown collation: 'utf8mb4_unicode_520_ci' 这个报错,核心原因是你WAMP自带的MySQL版本比较旧,不支持utf8mb4_unicode_520_ci这个较新的排序规则。而新版的phpMyAdmin默认会尝试使用这个排序规则,不管是导入数据库还是创建新数据库/访问phpMyAdmin首页,只要触发了这个不兼容的排序规则调用,就会报错。
那回到你的问题:你找到的导入数据库时的解决方法,大概率是通过替换SQL文件里的utf8mb4_unicode_520_ci为MySQL支持的排序规则(比如utf8mb4_unicode_ci或utf8_general_ci),这个核心思路是通用的,但针对当前“访问phpMyAdmin首页就报错”的场景,操作方式会不一样——毕竟你不是在导入外部SQL文件,而是phpMyAdmin自身的配置或系统数据库出了问题。
下面给你适配当前场景的具体解决步骤:
场景1:刚安装WAMP,首次访问phpMyAdmin就报错
这种情况一般是phpMyAdmin的系统数据库(名为phpmyadmin的库)里的表使用了不兼容的排序规则,或者MySQL全局配置没指定兼容的规则。可以按以下步骤操作:
第一步:修改MySQL全局配置
找到WAMP中MySQL的配置文件(路径一般是wamp64\bin\mysql\mysql[你的版本号]\my.ini),打开后在[mysqld]段落下添加或修改:collation-server = utf8mb4_unicode_ci character-set-server = utf8mb4保存后重启WAMP的MySQL服务。
第二步:修复phpMyAdmin的系统库(如果第一步无效)
- 打开命令提示符,进入WAMP的MySQL bin目录,比如:
cd wamp64\bin\mysql\mysql[你的版本号]\bin - 登录MySQL(默认root密码为空,直接回车即可):
mysql -u root -p - 切换到
phpmyadmin数据库:USE phpmyadmin; - 把所有系统表的排序规则替换为兼容的:
ALTER TABLE `pma__bookmark` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__column_info` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__designer_coords` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__export_templates` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__favorite` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__history` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__navigationhiding` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__pdf_pages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__recent` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__relation` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__savedsearches` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__table_coords` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__table_info` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__table_uiprefs` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__tracking` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__userconfig` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `pma__users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - 执行完后退出MySQL:
EXIT;
重启WAMP后再访问phpMyAdmin应该就能正常打开了。
- 打开命令提示符,进入WAMP的MySQL bin目录,比如:
场景2:进入phpMyAdmin后,创建新数据库时选择排序规则报错
这种情况更简单,直接在创建数据库的界面,不要选utf8mb4_unicode_520_ci,换成你的MySQL支持的排序规则就行,比如utf8mb4_unicode_ci或者utf8_general_ci。
总结
你找到的导入数据库时的解决方法,核心逻辑(替换不兼容的排序规则)是正确的,但要根据当前场景调整操作方式——导入是修改外部SQL文件,而当前场景是修改MySQL全局配置或phpMyAdmin的系统库表,这样才能解决问题。
内容的提问来源于stack exchange,提问作者sahar

