mysql启动前须修改配置文件,linux为/etc/my.cnf等,windows为my.ini;必须在[client]、[mysql]、[mysqld]段统一配置utf8mb4,重启后用show variables验证四项字符集全为utf8mb4;旧库表需手动alter转换。

MySQL 启动前必须修改的配置文件位置
Linux 下通常是 /etc/my.cnf 或 /etc/mysql/my.cnf,macOS 用 Homebrew 安装的可能在 /usr/local/etc/my.cnf,Windows 是 my.ini(在 MySQL 安装目录或 C:\Windows\)。只改运行时 SET 不生效,必须写进配置文件并重启 mysqld。
my.cnf 中要加的三类 utf8mb4 配置项
仅设置 character_set_server = utf8mb4 不够,客户端、连接、数据库默认值都要对齐,否则新建库/表/连接仍会回退到 latin1 或 utf8。必须同时配置以下部分:
-
[client]段加default-character-set = utf8mb4 -
[mysql]段加default-character-set = utf8mb4 -
[mysqld]段加:[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' skip-character-set-client-handshake = FALSE
验证是否真正生效的 SQL 命令
重启 MySQL 后,用 mysql -u root -p 连上去,执行以下语句检查每层是否都对齐:
MMM金融互助系统源码是以thinkphp为核心进行开发的3m金融互助平台。程序安装说明:1.恢复数据:将“数据备份”文件夹中的 urkeji.sql 文件请采用phpMyAdmin进行导入; 2.配置Sql数据库信息,文件路径:根目录下 config.php3.后台管理地址:http://域名/admin.php 用户名:100000 密码:admin1
SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%';
重点看这 4 项必须全为 utf8mb4:character_set_client、character_set_connection、character_set_database、character_set_server。如果 init_connect 没生效,character_set_client 可能还是 latin1,此时需确认用户是否有 SUPER 权限(否则 init_connect 被跳过)。
已有数据库和表怎么批量转 utf8mb4
配置生效只影响新创建的库和表,老数据不会自动转换。必须手动执行 ALTER:
- 改库:
ALTER DATABASE <db_name> CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;</db_name> - 改表:
ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;</table_name> - 只改某列(如避免全文索引失效):
ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;</column_name></table_name>
注意:CONVERT TO 会重建表,大表务必在低峰期操作;若字段含全文索引,需先删索引再重建,否则报错 ERROR 1709 (HY000): Index column size too large。









