當前位置:編程學習大全網 - 遊戲軟體 - mysql數據庫運用mysqldump命令過後沒有反應是什麽情況。如圖。

mysql數據庫運用mysqldump命令過後沒有反應是什麽情況。如圖。

通用規律只有使用 --all-databases (-A) 會 ERROR 1356,那就看看他到底備份了什麽東西。於是喊上同事壹起 less 看了下,上下掃了兩眼。突然發現:1. 備份 SQL 文件裏 DROP 掉了 mysql.proc;2. 後CREATE了壹個新的 mysql.proc;3. LOCK TABLES 和 UNLOCK TABLES 中間居然沒有備份 CREATE ROUTINE 任何數據?這不就是相當於每次導入全備都給我壹個沒有任何 sys schema routines 的全新 mysql.proc 表?那這不就異常的尷尬?

---- Table structure for table `proc`--

---- Dumping data for table `proc`-

真相大白在官方文檔sys-schema-usage官方文檔明確的告訴我們不會備份 sys 庫。但在使用 mysqldump 在執行 --all-databases 會清空 mysql.proc 導致 sys 無法正常使用;這是壹個 BUG,並且只存在於 MySQL 5.7.x !

1、mysql_upgrade install or upgrade sys schema

這個方案適用於 sys 庫已經因為 mysqldump 導入而損壞的情況下使用。

註意:mysql_upgrade 在修理 sys 庫的同時,還修理 mysql 庫和用戶庫表(期間加鎖且速度壹般),有極小可能會誤傷;使用 mysql_upgrade 的時候要加上 --upgrade-system-tables,不然會掃描用戶庫表。

2、全備時同時備份 sys 庫

這個方案適用於需要還原的數據庫,sys 庫也不太正常的情況下使用;在全備後額外再備份壹份 sys 庫用於修復。

註意:不適用於做主從時使用它。

3、使用 databases 全備

這個方案適用於所有場景的全備需求,100% 安全。

4、使用 mysql-sys 開源代碼

如果妳的數據庫 sys 全部中招了,又是生產庫。那妳只能用這個方法;

mysql-sys:/mysql/mysql-sys

中記錄了 sys 庫的創建語句將文件下載到本地,然後根據數據庫版本,執行以下命令即可。

  • 上一篇:手機藍牙耳機怎麽連
  • 下一篇:好聽的手機來電鈴聲(最好是純音樂的,柔和的)
  • copyright 2024編程學習大全網