1. 程式人生 > 其它 >Linux下實現MySQL資料庫定時備份

Linux下實現MySQL資料庫定時備份

咳~ 咳~ 為了避免資料操作失誤、資料丟失、甚至刪庫跑路,簡單做個數據備份吧

1、建立備份目錄

# 習慣放在 local 下
cd /usr/local/
# 建立備份目錄
mkdir backup

cd backup
# 在備份目錄下建立 sql 資料夾
mkdir sql

2、修改 MySQL 配置檔案 my.conf

# 編輯 /etc/my.conf 檔案地址可能與我不同,自行切換即可
vim /etc/my.conf

# 在開啟 binlog
[mysqld]
lob-bin=mysql-bin # 開啟二進位制日誌
server-id=12   # ip後2位 # 新增 mysqldump 配置 [mysqldump] user=root # mysql使用者名稱 password=root # mysql密碼

3、重啟 MySQL 資料庫

systemctl restart mysql

  

3、建立 shell 指令碼

# 在 backup 目錄下建立 備份指令碼
vim DBbackup.sh

# 指令碼內容如下: #!/bin/bash mysqldump bosen_shop | gzip > /usr/local/backup/sql/bosen_shop_$(date +%Y%m%d).sql.gz

  把 bosen_shop 換成自己的資料庫名,備份為 gz 檔案壓縮空間

4、DBbackup.sh新增可執行許可權

chmod u+x DBbackup.sh

# 執行指令碼看是否有錯
./DBbackup.sh

  

5、新增定時計劃任務

crontab -e
# 就像vi\vim 功能,要先安裝 crontab

# 輸入下方內容並儲存
30 23 * * * /usr/local/backup/DBbackup.sh # 每天 23:30 執行

  檢視 當前的定時任務

 crontab -l 

  

6、資料恢復

# 解壓 gz 檔案
gzip -d bosen_shop_20210711.sql.gz

# 匯入資料庫
mysql -u root -p bosen_shop < bosen_shop_20210711.sql
# 輸入資料庫的密碼即可

  此時已經恢復定時備份的資料,再開啟 binlog 日誌。恢復定時備份期間至資料丟失時的資料即可

# 登入 MySQL
mysql -uroot -p
# 輸入 root密碼

# 檢視 binlog
show master logs;

# 根據相應的 log 檔案,以及需要恢復的行號執行即可,這裡就不多說了