本文目錄一覽:
- 1、請簡要簡述MySQL的四大系統資料庫及其作用?
- 2、Mysql資料庫中哪幾個默認資料庫是不能刪的?
- 3、如何使用mysqldump命令備份mysql資料庫
- 4、mysql 自帶的sys表是做什麼的,可以刪掉嗎?
請簡要簡述MySQL的四大系統資料庫及其作用?
MySQL 自帶了四個資料庫,如下:
mysql庫。是MySQL的核心資料庫,存儲用戶、許可權等信息
information_schema。存儲表、鎖等性能信息。元數據關於數據的數據,如資料庫名,表名,訪問許可權,庫表的數據類型,庫索引的信息等
sys。這個庫數據來源於performance_schema。目標是把performance_schema的複雜程度降低,讓DBA能更好的閱讀這個庫里的內容,讓DBA更快的了解DB的運行情況。
performance_schema。這個庫主要收集資料庫伺服器性能參數,用於監控伺服器在一個較低級別的過程中的資源消耗,資源等待等情況
Mysql資料庫中哪幾個默認資料庫是不能刪的?
information_schema,mysql,performance_schema,sys這四個資料庫是MySQL自帶的資料庫,不能輕易刪除,其他自建的資料庫可以按需刪減。
如何使用mysqldump命令備份mysql資料庫
通用規律只有使用 –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:
中記錄了 sys 庫的創建語句將文件下載到本地,然後根據資料庫版本,執行以下命令即可。
mysql 自帶的sys表是做什麼的,可以刪掉嗎?
不可以的,這個是對整個資料庫的相關配置存放的表,刪除掉mysql立即癱瘓
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258067.html