Bitnami本地站点数据库字符集与排序规则导入故障解决方案咨询
解决数据库导入字符集/排序规则不匹配问题
我来帮你梳理下解决思路,其实问题根源是导出的SQL文件里硬编码了主机服务商不兼容的utf8/utf8_general_ci配置,而你本地数据库本身已经用了更完善的utf8mb4字符集,只要调整导出或者修改导出文件的方式就能搞定:
方案1:重新导出数据库(推荐,最省心)
既然你本地PhpMyAdmin里的数据库已经是utf8mb4_unicode_520_ci,直接按正确配置重新导出即可:
- 打开本地PhpMyAdmin,选中目标数据库
- 点击顶部的导出标签,选择「自定义」导出模式
- 拉到「格式特定选项」区域:
- 把「字符集」下拉框改成
utf8mb4 - 找到「排序规则」选项,选择
utf8mb4_unicode_520_ci
- 把「字符集」下拉框改成
- 继续往下拉,确保「添加CREATE TABLE选项」里的字符集配置和上面一致,然后点击「执行」导出新的SQL文件
- 用这个新导出的文件去主机服务商那边导入,应该就能直接成功了
方案2:批量修改已导出的SQL文件(如果不想重新导出)
如果已经有导出好的bitnamidatabase.sql,不用手动一行行改,用文本编辑器的批量替换功能就行:
- 用VS Code、Notepad++这类支持批量替换的编辑器打开SQL文件
- 执行以下替换操作(记得先备份原文件!):
- 查找
utf8_general_ci,替换为utf8mb4_unicode_520_ci - 查找
CHARSET=utf8,替换为CHARSET=utf8mb4 - 查找
CHARACTER SET utf8,替换为CHARACTER SET utf8mb4 - 查找
SET NAMES utf8;,替换为SET NAMES utf8mb4;
- 查找
- 保存修改后的文件,再拿去导入即可
关于是否要修改本地数据库的排序规则?
完全不需要!你本地数据库的表已经用了utf8mb4_unicode_520_ci,这是比utf8_general_ci更规范、支持更多字符的排序规则,问题只是出在导出时的配置没跟上,导致导出的SQL文件里写了旧的字符集规则而已。
导入时的额外注意
在主机服务商的PhpMyAdmin导入时,也要在导入页面的「字符集」下拉框选择utf8mb4,确保导入过程的字符集和文件一致,避免再次出现匹配问题。
内容的提问来源于stack exchange,提问作者Miki92
相关产品推荐
相关产品推荐

