MySQL json,jyoryo mysql_分類 Tools 下的文章

 2023-11-30 阅读 25 评论 0

摘要:前言:備份很重要、備份很重要、備份很重要。(PS:對應備份我也不免入俗了,重要的事情說三遍!!!)但是我們不用每次都自己操作備份或導出數據文件,可以Shell腳本幫我們自動完成這項重復勞動。備份數據庫前的思考:確定備

前言:

備份很重要、備份很重要、備份很重要。(PS:對應備份我也不免入俗了,重要的事情說三遍!!!)

但是我們不用每次都自己操作備份或導出數據文件,可以Shell腳本幫我們自動完成這項重復勞動。

備份數據庫前的思考:確定備份文件存放位置、備份文件名策略、是否自動刪除超過指定天數的歷史文件。

需要備份哪些數據庫還是所有的數據庫。

MySQL json?導出備份文件后,是否需要對備份的數據文件進行壓縮減小體積。

想清楚上面的幾個問題后,就可以著手操作了。

準備條件

使用[mysqldump]配置文件方法創建備份專用賬號CREATE USER 'backupuser'@'localhost' IDENTIFIED BY 'p455w0rd';

GRANT SELECT, SHOW VIEW, LOCK TABLES, RELOAD, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost';

FLUSH PRIVILEGES;

MySQL source,將1中添加的賬號添加至配置文件中[mysqldump]

user=backupuser

password=p455w0rd

備份腳本#!/bin/bash

# 直接指定備份數據庫使用的用戶名、密碼。(不建議)

# user="db_username"

MySQL手機版。# password="db_password"

# 指定備份具體的數據庫,多個數據庫,中間用空格進分割。如果全部備份可以使用參數 --all-databases

# dbname="db1 db2 db3"

# 指定備份存放目錄、備份文件名、備份文件名日期信息

backup_path="/data/bak/db"

backupname="db"

MySQL cluster、date=$(date "+%Y%m%d")

echo "Backing up mysql databases..."

# 檢測是否已存在備份文件,如有,進行刪除操作

if [ -f "$backup_path/$backupname-$date.sql.bz2" ]; then

rm -fv $backup_path/$backupname-$date.sql*

fi

MYSQL8.0?echo "Dumping databases..."

## 直接指定username, password(不推薦)

# mysqldump --user=$user --password=$password --databases $dbname > $backup_path/$backupname-$date.sql

## 將username, password放在配置文件中[mysqldump]下(推薦)

# mysqldump --databases $dbname > $backup_path/$backupname-$date.sql

## 備份所有數據庫

MySQL下載,mysqldump --all-databases > $backup_path/$backupname-$date.sql

echo "Compressing databases..."

bzip2 $backup_path/$backupname-$date.sql

chmod 600 $backup_path/$backupname-$date.sql.bz2

# Delete files older than 30 days(移除超過30天的歷史備份文件)

echo "Checking for old files..."

MySQL漢化、find $backup_path/* -mtime +30 -exec rm {} \;

echo "Done."

使用Crontab定時執行

進入Crontab編輯模式:crontab -e

添加定時任務:# m h dom mon dow command

30 1 * * * . /etc/profile; /data/soft/script/mysql_backup.sh > /data/soft/script/mysql_backup.log 2>&1 &

說明:每天凌晨1:30執行。

由于后臺MySQL是使用源碼形式安裝的,所有MySQL的命令不能直接運行,我在環境變量文件/etc/profile最后添加了export PATH=$PATH:/data/soft/mysql/bin。

. /etc/profile;,使環境變量生效。

2>&1:如果執行過程中有異常信息,將stderr也重定向標準輸出流stdout。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/186683.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息