修改 MySQL 配置文件后,必须重启 MySQL 服务或重新加载配置才能生效,直接改完保存不会自动应用。
找到正确的配置文件位置
MySQL 启动时会按顺序读取多个配置文件,常见路径有:
/etc/my.cnf(Linux 系统全局默认) /etc/mysql/my.cnf(Debian/Ubuntu 常用) /usr/etc/my.cnf(部分源码安装路径) ~/.my.cnf(当前用户级,仅影响该用户启动的客户端) /usr/local/mysql/etc/my.cnf(macOS 或自定义编译安装)不确定用的是哪个?运行命令查看 MySQL 实际加载的配置:
mysql --help | grep "Default options"
输出中带
my.cnf的路径就是它真正读取的文件(注意:可能有多个,优先级从上到下)。
修改配置前的注意事项
配置项必须放在正确的段落(section)里,否则无效。常用段落包括:
[mysqld]:服务端参数(如max_connections、
character-set-server) [client]:客户端通用参数(如
default-character-set) [mysql]:mysql 命令行客户端专属参数
例如设置默认字符集,要写在
[mysqld]下:
[mysqld]<br>character-set-server = utf8mb4<br>collation-server = utf8mb4_unicode_ci
写错段落或拼写错误(比如
charater-set-server)会导致配置被忽略,且通常不报错。
让 MySQL 配置生效的两种方式
方式一:重启 MySQL 服务(推荐,确保完全生效)
Linux(systemd):sudo systemctl restart mysqld或
sudo systemctl restart mysqlLinux(SysV init):
sudo service mysqld restartmacOS(Homebrew):
brew services restart mysqlWindows:在「服务」中重启 MySQL 服务,或运行
net stop MySQL && net start MySQL
方式二:动态修改部分参数(无需重启,但有限制)
仅适用于标有Dynamic的变量,例如
SET GLOBAL max_connections = 200;这类修改只在当前运行实例有效,重启后丢失;要永久生效仍需写入配置文件并重启 查看是否支持动态修改:
SHOW VARIABLES LIKE 'max_connections';+ 查文档确认属性
验证配置是否生效
登录 MySQL 后执行:
SHOW VARIABLES LIKE 'character_set_server';<br>SHOW VARIABLES LIKE 'max_connections';
对比输出值是否与配置文件中设置的一致。也可用
SELECT @@global.max_connections;直接查全局值。
如果没变,先检查配置文件路径是否正确、段落是否写对、有无语法错误(如漏写
=、多加空格),再确认是否已重启服务。
