You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用mysqldump备份MySQL数据库报错unknown variable 'database=foo'

问题根因

[client] 是MySQL通用客户端配置段,会被所有MySQL生态的客户端工具(包括mysql、mysqldump、mysqladmin等)加载读取。但database配置项仅支持mysql交互式客户端,mysqldump等工具没有该参数定义,因此读取到配置里的database=foo时就会抛出未知变量错误。

解决方案

提供两种可选修复方式:

  • 方案一(推荐):调整配置段归属
    把database配置项从[client]段迁移到仅对mysql客户端生效的[mysql]段,修改后的my.cnf参考如下:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[client]
user=foouser
password=foopassword
default-character-set=utf8

[mysql]
database=foo

修改完成后不需要重启MySQL服务,配置会自动对后续执行的客户端命令生效。

  • 方案二:临时跳过配置文件读取
    如果不想修改全局配置,可以在执行mysqldump命令时添加--no-defaults参数,强制跳过所有默认配置文件的读取,命令示例:
    mysqldump --no-defaults -u root -p foo > /home/backup/backup.foo_db.sql
    注意:使用--no-defaults参数后,配置文件中定义的账号、密码、字符集等配置也不会生效,需要手动在命令中补充指定对应参数。
验证操作

修改完成后先执行mysqldump --version命令,确认不再抛出未知变量错误后,再执行完整备份命令验证备份功能正常即可。

内容的提问来源于stack exchange,提问作者tealy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:57:03