如何修改mysql默认编码_mysql编码配置方法

P粉602998670
发布: 2025-12-18 01:39:18
原创
886人浏览过
MySQL 默认 latin1 编码易致中文乱码,需从客户端、服务端、数据库、表、连接五层面统一设为 utf8mb4;修改 my.cnf/my.ini 配置并重启服务,验证变量全为 utf8mb4,再批量转换旧库表,最后在应用连接时显式指定 utf8mb4。

如何修改mysql默认编码_mysql编码配置方法

MySQL 默认编码通常是 latin1,不支持中文等 UTF-8 字符,容易导致乱码。要彻底解决,需从客户端、服务端、数据库、表、连接五个层面统一设为 utf8mb4(推荐,兼容 emoji 和完整 UTF-8)。

修改 MySQL 配置文件(my.cnf 或 my.ini)

这是最根本的设置方式,重启后全局生效。找到配置文件(Linux 通常在 /etc/my.cnf/etc/mysql/my.cnf;Windows 为 my.ini),在对应段落下添加或修改:

  • [client] 下加:
    default-character-set = utf8mb4
  • [mysql] 下加:
    default-character-set = utf8mb4
  • [mysqld] 下加:
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    skip-character-set-client-handshake = ON(可选,强制忽略客户端声明)

保存后重启 MySQL 服务:sudo systemctl restart mysql(Linux)或服务管理器重启(Windows)。

验证当前编码设置是否生效

登录 MySQL 后执行以下命令检查关键项是否均为 utf8mb4

  • SHOW VARIABLES LIKE 'character_set%';
  • SHOW VARIABLES LIKE 'collation%';

重点关注:character_set_servercharacter_set_databasecharacter_set_clientcharacter_set_connectioncharacter_set_results —— 均应显示 utf8mb4

小麦企业网站展示系统1.1
小麦企业网站展示系统1.1

小麦企业网站展示系统介绍:一、安装使用将xiaomai.sql导入数据库二、后台登录后台帐号,密码默认都是admin,config.php 配置文件可根据自行需要修改,IP地址,数据库用户名,密码,及表名后台目录默认admin,支持自行任意修改目录名三、注意事项1 本源码完全免费,采用伪静态,减少不必要的源码重复,速度更快,支持二次开发。2、注明本程序编码为UTF8,如发生乱码,请注意修改编码3、

小麦企业网站展示系统1.1 2
查看详情 小麦企业网站展示系统1.1

对已有数据库和表批量修改编码

配置文件修改只影响新建库/表,旧对象需手动转换:

  • 修改数据库编码:
    ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
  • 修改单张表编码:
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 若只想改字符集不重定义字段,用:
    ALTER TABLE table_name CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci;

注意:执行前建议备份;含 TEXT/BLOB 字段时,CONVERT TO 更稳妥(会重定义字段类型以适配新字符集)。

应用连接时显式指定编码

即使服务端已设好,部分客户端(如 PHP PDO、Java JDBC、Python MySQLdb)仍可能默认用 latin1 连接。务必在连接字符串或初始化时声明:

  • PHP PDO:$pdo = new PDO($dsn, $user, $pass, [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"]);
  • JDBC URL:?characterEncoding=utf8mb4&serverTimezone=UTC
  • MySQL 命令行客户端启动时加:mysql --default-character-set=utf8mb4 -u user -p

这一步能避免“服务端对了,但连接层还是乱码”的常见问题

以上就是如何修改mysql默认编码_mysql编码配置方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号