mysqldump报“Access denied”主因是权限集不完整,需授予SELECT、LOCK TABLES、SHOW VIEW、TRIGGER等最小权限,缺一不可;还须检查PROCESS权限、系统库跳过机制、输出目录写权限及FLUSH PRIVILEGES是否执行。
不是密码输错,也不是用户名写错,而是账号根本没被授予备份所需的最小权限集。mysqldump在导出时会尝试读表、锁表、查视图定义、读触发器元数据,缺一不可。常见现象是导出文件为空(仅含CREATE DATABASE或注释),或直接报错Access denied for user 'xxx'@'localhost' (using password: yes)。
实操建议:
SHOW GRANTS FOR 'backup_user'@'localhost';,确认返回中是否包含 SELECT、LOCK TABLES、SHOW VIEW、TRIGGER
GRANT ALL PRIVILEGES ON *.***):GRANT SELECT, LOCK TABLES, SHOW VIEW, TRIGGER ON `app_db`.* TO 'backup_user'@'localhost';
FLUSH PRIVILEGES;,否则权限不生效EXECUTE 和 EVENT 权限;若用 --all-databases 或涉及 mysql.proc,则需 SELECT 权限到 mysql.proc 表这个错误明确指向 PROCESS 权限缺失,常出现在较新版本(如 MySQL 9.6.0)或启用审计/性能监控的实例中。mysqldump 在初始化连接时会查询 INFORMATION_SCHEMA.PROCESSLIST 或调用 SHOW PROCESSLIST 获取当前连接状态,无此权限即中断。
实操建议:
GRANT PROCESS ON *.* TO 'backup_user'@'localhost'; FLUSH PRIVILEGES;
FILE、SUPER 等高危权限即可PROCESS(如某些云 RDS 实例),可改用 --skip-opt --no-tablespaces --skip-triggers --skip-routines 组合降低依赖,但需验证导出完整性即使权限全了,仍可能导出为空或漏表,问题往往藏在连接参数或上下文里。
实操建议:
SHOW DATABASES; 输出完全一致(Linux 下大小写敏感)--no-data 或 --skip-extended-insert(后者不影响有无数据,但容易混淆)mysql、information_schema 等系统库,默认会被跳过;要导出结构,需显式加 --skip-lock-tables --no-data,且用户需有对应表的 SELECT 权限--verbose --single-transaction 2>&1 | head -20 查看实时 stderr,能快速定位是卡在连接、鉴权,还是某张表权限拒绝权限不足不止发生在数据库侧——mysqldump 进程若对输出路径无写权限,部分 shell 环境下会静默退出,生成空文件或 0 字节文件,错误不抛到终端。
实操建议:
ls -ld /path/to/backup,确认执行用户对该目录有 w 权限/var/backups 等 root-only 目录;推荐用 ~/backups 或显式 chown 调整归属mysqldump ... | gzip > backup.sql.gz),错误实际发生在右侧进程(gzip),需检查其目标路径权限touch /path/to/backup/test.txt,确认能创建空文件真正卡住的地方,常常不是“有没有权限”,而是“权限有没有被正确加载”和“错误输出有没有被看见”。FLUSH PRIVILEGES 漏掉、stderr 被重定向丢弃、输出路径属主错配——这些比权限语句本身更容易被忽略。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)