讲师中心 微信公众号
AI工具推荐 视频效率加速

为什么宝塔面板数据库迁移后中文乱码_对比两端字符集排序规则设置

风静吖_3652

风静吖_3652

发布时间:2026-04-29 09:28:40

|

1048人浏览过

|

来源于php中文网

原创

导出时必须显式指定--default-character-set=utf8mb4,否则mysqldump按server默认字符集(如latin1)输出,导致SET NAMES语句错误引发乱码;导入时也须强制连接编码为utf8mb4,且需验证CHARSET()和COLLATION()结果。

为什么宝塔面板数据库迁移后中文乱码_对比两端字符集排序规则设置

导出时没锁定字符集,dump 文件自带 latin1 头

mysqldump 默认按服务器 character_set_server 编码输出 SQL,宝塔装的 MySQL 往往默认是 latin1 或 utf8(即 utf8mb3),哪怕库和表本身已是 utf8mb4,导出的 SQL 文件开头仍可能是:

SET NAMES latin1;
或
/*!40101 SET NAMES utf8 */;
。这种语句会让导入端按错误编码解析后续中文,直接导致乱码。

实操建议:

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载
  • 导出时必须显式指定 --default-character-set=utf8mb4,例如:
    mysqldump -u root -p --default-character-set=utf8mb4 your_db > backup.sql
  • 避免用 phpMyAdmin 图形界面“导出”,它常忽略连接层实际 charset,优先用命令行
  • 检查 dump 文件前 20 行,确认有
    SET NAMES utf8mb4;
    而非其他值

导入时没强制指定连接编码,MySQL 按旧配置执行

即使 dump 文件正确,如果导入时连接未设为 utf8mb4,MySQL 仍会把文件里的中文当 latin1 解析——比如把两个字节的 UTF-8 中文拆成两个乱码字符。

实操建议:

  • 不要用 mysql -u root -p your_db 这种裸命令,它不带 charset 声明
  • 改用:
    mysql -u root -p --default-character-set=utf8mb4 your_db < backup.sql
  • 若用 phpMyAdmin 导入,先在首页右上角点「导入」→ 展开「格式特定选项」→ 把「字符集」下拉框手动选为 utf8mb4
  • 导入后立刻执行 SELECT CHARSET(), COLLATION(); 确认当前会话编码

两端 collation 不一致,ORDER BY 或 WHERE LIKE 结果异常

字符集相同但校对规则不同(如一端用 utf8mb4_unicode_ci,另一端用 utf8mb4_general_ci),虽不直接导致存取乱码,但会影响中文排序、大小写匹配、重音符号处理。例如 WHERE name LIKE '%张%' 在 _general_ci 下可能漏匹配带变音的「張」。

实操建议:

  • 迁移前后都执行:
    SHOW CREATE DATABASE your_db;
    和
    SHOW CREATE TABLE your_table;
    ,比对 COLLATE 字段是否完全一致
  • 建库时统一用:
    CREATE DATABASE `your_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 已有库可修正:
    ALTER DATABASE `your_db` COLLATE = utf8mb4_unicode_ci;
    (注意:仅改库 collation 不影响已有表,表需单独改)

PHP 连接层仍走默认编码,查出来还是问号

数据库和 dump 都对了,但 PHP 页面显示仍是问号或方块——大概率是应用连接 MySQL 时没声明 utf8mb4,连接层仍在用 latin1 解析字段值。

实操建议:

  • mysqli 方式:连接后**立刻**调用 $mysqli->set_charset("utf8mb4"),不能只靠 DSN 里写 charset=utf8
  • PDO 方式:DSN 必须含 ;charset=utf8mb4,且不能被 PDO::MYSQL_ATTR_INIT_COMMAND 覆盖
  • 验证是否生效:在查询前执行 $pdo->query("SELECT CHARSET(), COLLATION()")->fetch(),结果应为 utf8mb4 和 utf8mb4_unicode_ci
  • 别信 phpinfo() 里的 default_charset,它只管 HTTP header,跟 MySQL 无关
字符集迁移不是“改完库就完事”的单点操作,导出、导入、连接三者缺一不可;collation 差异虽不引发乱码,但会让中文逻辑行为飘忽不定——这点最容易被跳过验证。

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
常用的mysql管理工具
常用的mysql管理工具

常用的mysql管理工具有:1、MySQL Workbench、phpMyAdmin、MySQL Shell、Navicat、DBeaver和DataGrip。更多关于mysql管理工具的问题,详情请看本专题下面的文章,php中文网欢迎大家前来学习。

6050

2023.11.03

phpmyadmin导入sql文件失败怎么办
phpmyadmin导入sql文件失败怎么办

在phpmyadmin导入sql文件失败时,可以尝试以下解决方案:1、检查文件权限和格式;2、确保文件字符集与数据库兼容;3、确认表结构兼容;4、检查外键约束和禁用外键检查;5、增加最大上传文件大小;6、分批导入或使用命令行导入;7、联系托管提供商寻求帮助。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3804

2024.04.02

phpmyadmin怎么改成中文
phpmyadmin怎么改成中文

通过安装中文语言包、将其上传到 phpmyadmin 目录、修改配置文件和重启 phpmyadmin,可以将 phpmyadmin 的界面改为中文。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

841

2024.04.07

phpmyadmin访问不了怎么回事
phpmyadmin访问不了怎么回事

phpmyadmin 无法访问可能是以下原因造成:1、服务器问题:mysql 服务未运行或防火墙阻止访问;2、配置问题:安装/配置错误、错误的配置文件设置或缺少必要的 php 扩展;3、浏览器问题:浏览器缓存、扩展干扰或浏览器不兼容;4、其他原因:dns 问题、恶意软件或网络连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

939

2024.04.07

phpMyAdmin安装教程大全
phpMyAdmin安装教程大全

本专题整合了phpMyAdmin程序安装相关教程,阅读专题下面的文章了解更多详细内容。

925

2025.10.31

PHPMyadmin配置
PHPMyadmin配置

本专题整合了phpmyadmin配置相关教程,阅读专题下面的文章了解更多详细步骤。

569

2025.12.04

XAMPP 与 phpMyAdmin 数据库管理实操
XAMPP 与 phpMyAdmin 数据库管理实操

专注于 XAMPP 内置的 phpMyAdmin 数据库管理工具,系统讲解数据库和数据表的创建与设计、SQL 语句执行、CSV/SQL 格式数据的导入导出、定时备份与一键还原、多数据库批量管理等日常操作,帮助开发者高效管理本地 MySQL 数据。

355

2026.04.08

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
宝塔入门指引手册
宝塔入门指引手册

共0课时 | 0人学习

宝塔官方实践教程
宝塔官方实践教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn