前言:本文是學習網易微專業的《python全棧工程師》 中的《服務器運維開發工程師》專題的課程筆記,歡迎學習交流。同時感謝老師們的精彩傳授!
一、課程目標
- 服務器帳號管理
mysql
日誌配置- 數據庫備份與恢復
二、詳情解讀
2.1.服務器帳號管理
2.1.1.用戶授權(DCL
)
對已存在用戶授權:
mysql>>>grant privileges_type on dbname.tablename to username@host
創建新用戶並授權:
mysql>>>grant privileges_type on dbname.tablename to username@host identified by 'password'
privileges_type
說明:
參數 | 說明 |
---|---|
all privileges | 所有權限 |
select | 讀取權限 |
delete | 刪除權限 |
update | 更新權限 |
create | 創建權限 |
drop | 刪除數據庫、數據表權限 |
2.1.2.用戶管理
例子1:爲已存在的用戶創建可以操作mycms
的所有權限
mysql>>>grant all privileges on mycms.* to lxp@localhost
例子2:創建新用戶wxp
,只能本地localhost
訪問,擁有對mycms
的users
表查詢操作:
mysql>>>grant select on mycms.users to wxp@localhost identified by '123456'
2.2.日誌配置
2.2.1.日誌類型與配置
日誌類型:
1、錯誤日誌 - 記錄數據庫啓動與停止,以及運行過程中發生的錯誤。
2、二進制日誌 - 記錄了所有 ddl
與dml
的語句,不包括select
語句,即數據發生變化的過程。
3、通用日誌 - 記錄了客戶端的所有語句,一般情況下不開啓。
4、慢查詢日誌 - 記錄了數據庫查詢超過一定時間的語句。
日誌配置:
# my.cnf
# 開啓通用日誌
general_log = 1
# 通用日誌地址
general_log_file = /usr/local/mysql/logs/general.log
# 開啓慢查詢日誌
slow_query_log = 1
# 慢查詢日誌地址
slow_query_log_file = /usr/local/mysql/logs/slow.log
# 慢查詢閥值
long_query_time = 5
log_output = FILE
# 二進制,二進制日誌是備份裏非常重要的日誌,需要配置好,防止數據庫崩潰,無法恢復數據。
--log-bin = "server_1_bin"
server_id = 1
2.3.數據庫備份
數據庫備份是日常運維的一部分,很多數據需要定期的備份,比如一天一備份,或者一週一備份,完全看數據庫更改的頻度。如果希望數據庫備份越接近越好,則需要頻繁地備份;如果數據庫沒有什麼訪問量,則可以一週備份一次。
通常是使用一個定時任務來完成備份。一般在做數據庫遷移或者升級時,都需要提前進行數據庫備份。防止數據庫遷移或升級失敗時無法恢復數據。
數據庫備份使用mysqldump
命令:
1、備份database
庫的tablename
表
shell>>> mysqldump -u account -p database tablename1 tablename2 > mycms.sql
示例:
1、備份mycms
庫的users
表
shell>>> mysqldump -u root -p mycms users > mycms.sql
2、備份database
庫中所有表
shell>>>mysqldump -u -root -p mycms > mycms.sql
說明:
1)、shell
表示:上面所有的命令都是在shell
終端中執行的,而不是在mysql
客戶端中執行的。
2)、最後的>
表示:將數據備份到當前目錄下的mycms.sql
文件中,也可以備份到指定目錄下的文件中。
備份多個數據庫:
1、備份database
庫的tablename
表
shell>>>mysqldump -u account -p --databases database1 dtabase2 > datafile.sql
示例:
1、備份mycms,test
數據庫
shell>>>mysqldump -u root -p --databases mycms test > my.sql
2、備份database
庫中所有庫
shell>>>mysqldump -u root -p --all-databases > mycms.sql
2.4.數據備份恢復
2.4.1.數據庫備份與恢復注意事項
備份時應當注意,備份期間,數據不應該發生變化,以保證數據一致性:
mysqldump -u -p -l -F
在參數上加上 -l
,備份期間只能讀不能寫。
在參數上加上-F
,生成新的日誌,這樣在恢復數據時,可以恢復備份之後的數據
2.4.2.完全恢復
完全恢復數據分爲兩步:
Step1
- 將備份文件中的數據導入數據庫:
mysql dbname < backupfile -u account -p
Step2
- 恢復備份之後到當前的數據(二進制日誌):
mysqlbinlog binlog文件| mysql dbname -u root -p
2.5.基於時間點恢復
如果二進制日誌中記錄了一些誤操作,那麼基於日誌恢復,也會執行這些誤操作,所以無法恢復誤操作。所以必須跳過誤操作:
1.mysqlbinlog --stop-datetime="......" logfile|mysql -u -p
2. mysqlbinlog --start-dastetime="......" logfile|mysql -u -p
三、課程小結
- 01 用戶授權
- 02 日誌配置
- 03 數據備份
- 04 日誌時間點恢復