mysqldump导出MySQL数据库仅含变量无表结构及数据问题求助
mysqldump导出仅含配置无表结构数据的排查方向
- 优先排查账号权限:使用
mysql --login-path=bc登录数据库后,依次执行以下命令验证权限:- 执行
SHOW GRANTS FOR CURRENT_USER;,确认当前账号对my_database下的所有表拥有SELECT权限,无该权限时mysqldump会自动跳过表结构和数据导出,仅导出有权限的存储过程/函数(和你当前得到的dump内容特征完全匹配) - 执行
USE my_database; SHOW TABLES;,确认能看到所有预期导出的表,若看不到表可直接定位为权限不足
- 执行
- 校验用户级MySQL配置:
/etc/my.cnf为全局配置,MySQL还会优先读取当前用户家目录下的配置文件,执行以下命令对比你和同事的输出差异:- 执行
mysqldump --print-defaults,查看mysqldump加载的所有默认参数,确认是否存在--no-data、--ignore-table等会过滤表内容的参数 - 检查家目录下是否存在
.my.cnf、.mysqldump.cnf等用户私有配置,这类配置会覆盖全局配置的参数
- 执行
- 校验login-path配置一致性:执行
mysql_config_editor print --all,对比你和同事的bc登录项对应的用户名、连接地址、端口是否完全一致,避免出现连接到不同实例、使用不同账号的情况 - 检查环境变量配置:执行
env | grep -i mysql,确认是否存在MYSQLDUMP_OPTIONS、MYSQL_OPTIONS这类会向mysqldump注入额外参数的环境变量,这类变量不会出现在配置文件中,容易被忽略
内容的提问来源于stack exchange,提问作者ComputersAreNeat
相关产品推荐
相关产品推荐

