【MySQL】mysqldump使用指南
2022-08-01 14:02 abce 阅读(420) 评论(0) 编辑 收藏 举报1.mysqldump不会备份sys库。但在使用mysqldump在执行--all-databases会清空mysql.proc导致sys无法正常使用;这是一个BUG,并且只存在于MySQL 5.7.x
2解决方案:
(1)mysql_upgrade install or upgrade sys schema
这个方案适用于sys库已经因为mysqldump导入而损坏的情况下使用。
1 2 3 4 5 6 7 8 9 10 11 | # 删除 sys schema (An error occurs if a sys schema exists but has no version view ) mysql> DROP DATABASE sys; # 这个时候 sys schema 不应该存在 mysql> SHOW DATABASES; # 最后,执行 mysql_upgrade sys schema 以恢复正常 mysql_upgrade --upgrade-system-tables --skip-verbose --force mysql> SHOW DATABASES; mysql> SELECT COUNT (*) FROM mysql.proc; |
注意:mysql_upgrade 在修理 sys 库的同时,还修理 mysql 库和用户库表(期间加锁且速度一般),有极小可能会误伤;使用 mysql_upgrade 的时候要加上 --upgrade-system-tables,不然会扫描用户库表。
(2)全备时同时备份 sys 库
这个方案适用于需要还原的数据库,sys 库也不太正常的情况下使用;在全备后额外再备份一份 sys 库用于修复。
1 2 | mysqldump -A --set-gtid-purged=OFF --master-data=2 --single-transaction --routines --events --triggers > all.sql mysqldump --databases --routines sys > sys_dump_`mysql -V|awk '{print $5}'|cut -b 1-6`.sql |
注意:不适用于做主从时使用它。
注意:不适用于做主从时使用它。
(3)使用databases全备
这个方案适用于所有场景的全备需求,100% 安全。
1 2 3 4 5 6 7 8 9 10 11 12 | select_databases= " SELECT GROUP_CONCAT(schema_name SEPARATOR ' ') FROM information_schema.schemata WHERE schema_name NOT IN ('performance_schema','information_schema');" databases=`mysql -NBe "$select_databases" ` mysqldump --set-gtid-purged=OFF --master-data=2 \ --single-transaction --routines --events --triggers \ --max_allowed_packet=256M --databases > all.sql |
(4)使用 mysql-sys 开源代码
如果你的数据库 sys 全部中招了,又是生产库。那你只能用这个方法;
mysql-sys:
https://github.com/mysql/mysql-sys
中记录了sys库的创建语句将文件下载到本地,然后根据数据库版本,执行以下命令即可。
1 2 3 4 5 6 7 8 9 | # 安装前操作,内容是禁用掉 sql_log_bin,不记录到日志中。 mysql> source before_setup.sql # 创建 sys 库,实际会调用其他文件夹中的 sql 语句 # 来进行表、视图、存储过程、触发器的创建 mysql> source sys_57.sql # 安装后的操作,内容是将 sql_log_bin 恢复到操作前的状态 mysql> source after_setup.sql |
MySQL 8,具体原因是从MySQL 8.0.0起就移除了mysql.proc这张表。
https://www.toutiao.com/article/6894154794278224395/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2017-08-01 二进制安装mysql 5.6
2016-08-01 Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh
2016-08-01 RAC GI安装,报"Task resolv.conf Integerity"验证失败