mysqldump报[ERROR] unknown variable 'local_infile=1'错误,求解决方法
解决方案
1. 临时跳过配置文件加载
执行mysqldump时添加--no-defaults参数,绕过可能包含不兼容变量的配置文件:
mysqldump --no-defaults -u user -p sampledb > sampledump.sql
这个方法能直接避开local_infile=1的影响,优先尝试。
2. 定位并修正mysqldump读取的配置文件
执行以下命令查看mysqldump默认加载的配置文件路径:
mysqldump --help | grep "Default options"
根据输出找到对应的配置文件(比如Linux下的~/.my.cnf、/etc/my.cnf,Windows下的my.ini),打开后删除local_infile=1这一行,保存后重新执行dump命令。
3. 为mysqldump单独配置专属配置文件
如果需要保留其他客户端配置,创建一个仅包含mysqldump支持参数的配置文件(比如mysqldump.conf),内容示例:
[mysqldump] user=user # 可选:添加password避免每次输入,注意文件权限要设为600防止泄露 # password=your_password
然后执行dump时指定该配置文件:
mysqldump --defaults-file=/path/to/mysqldump.conf -u user -p sampledb > sampledump.sql
4. 修复MySQL Workbench导出空白问题
- 确保在Workbench的“Data Export”界面勾选了要导出的数据库和表,有时候默认未选中会导致生成空白文件;
- 重启Workbench并关闭可能拦截的防火墙/杀毒软件,再尝试导出;
- 尝试用Workbench的命令行导出单表:在Query界面执行
注意:Linux需要确保MySQL对目标路径有写入权限,Windows需替换为本地路径(如SELECT * INTO OUTFILE '/tmp/sampledump.csv' FROM sampledb.your_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';C:/temp/sampledump.csv)。
内容的提问来源于stack exchange,提问作者Airah
相关产品推荐
相关产品推荐

