mysqldump报错Access denied是权限不足,需授予SELECT、LOCK TABLES、SHOW VIEW、TRIGGER权限;Lost connection因超时,应调大超时参数;跳过mysql等系统表属正常;导出须加--default-character-set=utf8mb4防乱码。
mysql
dump 报错:Access denied for user
这是权限不足的典型表现,
连接数据库时用的账号没被授予足够权限。不是只要能登录 MySQL 就能导出——它至少需要
(读表)、
(锁表防写入干扰)、
(导出视图)、
(导出触发器)等权限。
实操建议:
用
登录后,执行:
确认权限是否完整
若缺失,补全权限:
避免用
账号跑定时备份脚本,最小权限原则更安全
mysqldump 报错:Got error: 2013: Lost connection to MySQL server during query
常见于导出大表(比如单表超 1GB)或网络不稳时。本质是连接超时或服务端主动断开,不是数据损坏。
实操建议:
增大客户端和服务端的超时参数:
服务端需同步调整:
和
(建议设为 600 或更高),改完重启或
生效
对超大库,优先考虑分表导出:
mysqldump 日志里出现 Warning: Skipping the data of table mysql.xxx
这是正常行为,不是错误。默认情况下
会跳过系统库
、
、
、
的数据(只导结构或完全跳过),因为这些表内容依赖运行时状态,直接还原可能引发权限混乱或元数据冲突。
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
实操建议:
如需备份用户权限,用
加
,但必须配合
和显式排除
等库,否则会报错
更稳妥的方式是单独导出权限:
注意
表在 8.0+ 已弃用密码字段,权限导出后需人工校验兼容性
mysqldump 导出 SQL 文件开头没有 SET NAMES 或 character_set_client
这会导致还原时中文乱码,尤其当源库用
而目标库默认字符集是
。
默认不强制写字符集声明,靠客户端连接时协商,但还原时容易失效。
实操建议:
导出时显式指定:
检查生成文件前几行是否含:
或
若已导出但缺该声明,可在文件开头手动插入
,但要注意不能插在
语句之前(否则可能被忽略)
实际恢复前,务必用
快速扫一眼字符集和库名是否符合预期;大库导出别只看最后有没有 “Dump completed”,得 grep 看有无 “Warning” 或 “ERROR” 行——很多失败静默发生。
mysqldumpSELECTLOCK TABLESSHOW VIEWTRIGGERmysql -u root -pSHOW GRANTS FOR 'backup_user'@'%';GRANT SELECT, LOCK TABLES, SHOW VIEW, TRIGGER ON *.* TO 'backup_user'@'%'; FLUSH PRIVILEGES;rootmysqldump --connect-timeout=600 --net-read-timeout=600 --net-write-timeout=600 -u user -p db_namewait_timeoutinteractive_timeoutSET GLOBALmysqldump -u user -p db_name table1 table2 > part1.sqlmysqldumpmysqlinformation_schemaperformance_schemasys--all-databases--skip-lock-tables--skip-commentsinformation_schemamysqldump --no-create-info --skip-extended-insert mysql user db tables_priv > grants.sqlmysql.userutf8mb4latin1mysqldumpmysqldump --default-character-set=utf8mb4 -u user -p db_name > dump.sqlSET NAMES utf8mb4;/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;SET NAMES utf8mb4;CREATE DATABASEhead -n 20 dump.sql