Mac端通过sudo nano编辑my.cnf禁用MySQL严格模式操作疑问
操作问题排查与后续步骤
前面操作的正误说明
- 配置逻辑没有问题:设置
sql_mode=""确实会移除包括STRICT_TRANS_TABLES在内的所有SQL模式限制,满足你导入含空行列的需求,和已有的secure_file_priv配置也不存在冲突。 - 操作顺序存在小问题:nano编辑器的标准流程是先编辑内容再执行保存,你先按了
command+O(保存快捷键)之后才新增sql_mode=""行,这部分新增内容还没有被写入文件。 - 你不需要使用
alt+A快捷键:该快捷键是nano的全选功能,你当前的编辑场景完全用不上,没有反应也不影响操作。
后续操作步骤
- 确认
/etc/my.cnf的[mysqld]段完整内容如下即可,不需要追加其他额外配置:
[mysqld] secure_file_priv="" sql_mode=""
- 执行保存操作:按下
command + O,终端底部会出现File Name to Write: /etc/my.cnf的提示,直接按回车键确认保存。 - 保存成功后按下
control + X退出nano编辑器。 - 重启MySQL服务让配置生效:
- 若为Homebrew安装的MySQL,执行命令:
brew services restart mysql - 若为官方dmg包安装的MySQL,可直接在系统设置的MySQL面板点击重启,也可执行命令:
sudo /usr/local/mysql/support-files/mysql.server restart
- 若为Homebrew安装的MySQL,执行命令:
- 验证配置生效:登录MySQL后分别执行以下命令,返回值为空即说明配置生效:
- 验证sql_mode:
SHOW VARIABLES LIKE 'sql_mode'; - 验证secure_file_priv:
SHOW VARIABLES LIKE 'secure_file_priv';
- 验证sql_mode:
可选优化建议
如果不想清空所有SQL模式,只移除STRICT_TRANS_TABLES即可,安全性更高。你可以先查询默认的sql_mode值,删除其中的STRICT_TRANS_TABLES参数后再写入配置即可。
内容的提问来源于stack exchange,提问作者Bean Huang
相关产品推荐
相关产品推荐

