ホームページ データベース mysql チュートリアル 讲解Linux系统下如何自动备份MySQL数据的基本教程_MySQL

讲解Linux系统下如何自动备份MySQL数据的基本教程_MySQL

May 27, 2016 pm 01:45 PM
linux mysql バックアップ チュートリアル

1.先创建一个数据库备份目录:

mkdir backup
cd backup
mkdir mysqlbackup
cd mysqlbackup
ログイン後にコピー

2.创建备份脚本

vi mysqlautobackup
ログイン後にコピー

3.编写脚本:

filename=`date +%Y%m%d`
/mysql的bin目录/mysqldump --opt 数据库名 -u(mysql账号) -p(mysql密码) | gzip > /备份到哪个目录/name$filename.gz
ログイン後にコピー


说明:以上采用gzip压缩,name可随意写,注意-u与mysql账号之间没有空格也无需括号,-p与mysql密码也是。
4.将脚本设置为可执行权限:

chmod +x autobackup
ログイン後にコピー


5.写入计划任务:

crontab -e
01 01 * * * /bin/bash /脚本所在目录/mysqlautobackup
ログイン後にコピー


每天凌晨1点零1分执行脚本。
重启计划任务:

/etc/rc.d/init.d/crond restart
ログイン後にコピー


至此所有步骤完成。

一些常用技巧
1、创建保存备份文件的路径/mysqldata

#mkdir /mysqldata
ログイン後にコピー

2、创建/usr/sbin/baktest文件
输入以下内容:

mysqldump -uroot -proot test | gzip > /mysqldata/test`date +%Y-%m-%d_%H%M%S`.sql.gz
ログイン後にコピー

3、修改文件属性,使其可以执行

#chmod +x /usr/sbin/baktest
ログイン後にコピー

4、修改/etc/crontab
在下面添加

01 3 * * * root /usr/sbin/baktest
ログイン後にコピー

表示每天3点钟01分执行备份

5、重新启动crond

#/etc/rc.d/init.d/crond restart
ログイン後にコピー

完成。


PS:
全备份脚本:

#!/bin/bash
# Name:qbk全备份脚本
# mysql qbk scripts
# By zxsdw.com
# Last Modify:2015-01-21
#定义脚本存放路径
#scriptsDir=/usr/sbin
#定义用户名及密码
user=root
userPWD=密码
#定义要备份的数据库
database=数据库
#定义完全备份文件存放路径
bakDir=/backup/mysql
#eMailFile=$bakDir/email.txt
#eMail=admin@zxsdw.com
#定义日志文件
LogFile=$bakDir/mysqlbak.log
DATE=`date +%Y%m%d`
echo " " >> $LogFile
echo " " >> $LogFile
echo "--------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >>$LogFile
echo "-----------------" >> $LogFile
cd $bakDir
DumpFile=$DATE.sql.gz
mysqldump --flush-logs -u$user -p$userPWD --quick $database| gzip >$DumpFile
echo "Dump Done" >> $LogFile
echo "[$DumpFile]Backup Success!" >> $LogFile
daily_databakDir=$bakDir/daily_backup
cd $bakDir/daily_backup
find $daily_databakDir -name "daily*" -type f -mtime +35 -exec rm {} \; > /dev/null 2>&1
ログイン後にコピー


增量备份脚本

#!/bin/bash
# Name:zbk增量备份
# mysql zbk scripts
# By zxsdw.com
# Last modify:2015-01-21


#定义数据库用户名及密码
user=root
userPWD=密码
#定义数据库
database=数据库
#生成一个新的mysql-bin.00000X文件,如果err日志被清除,则自动新建一个。
/usr/local/mysql/bin/mysqladmin -u$user -p$userPWD flush-logs
#定义增量备份位置
daily_databakDir=/backup/mysql/daily_backup
#定义MYSQL数据日志目录
mysqlDataDir=/usr/local/mysql/var
#定义增量日志及目录
eMailFile=$daily_databakDir/email.txt
#eMail=admin@zxsdw.com
#定义变量DATE格式为20150127
DATE=`date +%Y%m%d`
#定义一个总的logFile日志
logFile=$daily_databakDir/mysql$DATE.log


#美化日志模板
echo "    " > $eMailFile
echo "-----------------------" >> $eMailFile
#时间格式为15-01-27 01:06:17
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
echo "-------------------------" >> $eMailFile


#定义删除bin日志的时间范围,格式为20150124010540
TIME=$(date "-d 3 day ago" +%Y%m%d%H%M%S)
#定义需要增量备份数据的时间范围,格式为2015-01-26 01:04:11
StartTime=$(date "-d 1 day ago" +"%Y-%m-%d %H:%M:%S")

###########开始删除操作美化日志标题##############
echo "Delete 3 days before the log" >>$eMailFile

#删除三天前的bin文件,及更新index里的索引记录,美化日志标题
mysql -u$user -p$userPWD -e "purge master logs before ${TIME}" && echo "delete 3 days before log" |tee -a $eMailFile

#查找index索引里的bin 2进制文件并赋值给 i。
filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'`
for i in $filename
do
#########开始增量备份操作,美化日志标题###########
echo "$StartTime start backup binlog" >> $eMailFile

#利用mysqlbinlog备份1天前增加的数据,并gzip压缩打包到增量备份目录
/usr/local/mysql/bin/mysqlbinlog -u$user -p$userPWD -d $database --start-datetime="$StartTime" $mysqlDataDir/$i |gzip >> $daily_databakDir/daily$DATE.sql.gz |tee -a $eMailFile

done


#如果以上备份脚本执行成功,接着运行下面的删除脚本
if [ $? = 0 ]
then
# 删除mtime>32的增量日志备份文件
find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} \; > /dev/null 2>&1
cd $daily_databakDir
echo "Daily backup succeed" >> $eMailFile
else
echo "Daily backup fail" >> $eMailFile
#mail -s "MySQL Backup" $eMail < $eMailFile #备份失败之后发送邮件通知
#fi结束IF判断
fi


#把变量eMailFile的内容替换logFile内容
cat $eMailFile > $logFile

#如果上面的IF判断失败,再次运行删除mtime>32的增量日志备份文件
find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} \; > /dev/null 2>&1
rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd root@$ip:/zxs/allimg/$(date -d -1day +%y%m%d) /zxs/allimg/
gunzip < /backup/mysql/daily_backup/ceshi.sql.gz | /usr/local/mysql/bin/mysql -u用户名 -p密码 数据库名 --force
--force参数 忽略错误

ログイン後にコピー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

Redisでサーバーを開始する方法 Redisでサーバーを開始する方法 Apr 10, 2025 pm 08:12 PM

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

phpmyAdmin接続mysql phpmyAdmin接続mysql Apr 10, 2025 pm 10:57 PM

phpmyadminを使用してmysqlに接続する方法は? phpmyadminにアクセスするためのURLは、通常、http:// localhost/phpmyadminまたはhttp:// [サーバーIPアドレス]/phpMyAdminです。 MySQLユーザー名とパスワードを入力します。接続するデータベースを選択します。 [接続]ボタンをクリックして、接続を確立します。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

SQLデータベースエラーを表示する方法 SQLデータベースエラーを表示する方法 Apr 10, 2025 pm 12:09 PM

SQLデータベースエラーを表示する方法は次のとおりです。1。エラーメッセージを直接表示します。 2。エラーを表示し、警告コマンドを表示します。 3.エラーログにアクセスします。 4.エラーコードを使用して、エラーの原因を見つけます。 5.データベース接続とクエリ構文を確認します。 6.デバッグツールを使用します。

phpmyAdminの包括的な使用ガイド phpmyAdminの包括的な使用ガイド Apr 10, 2025 pm 10:42 PM

PHPMyAdminは単なるデータベース管理ツールではなく、MySQLを深く理解し、プログラミングスキルを向上させることができます。コア関数には、CRUDおよびSQLクエリの実行が含まれ、SQLステートメントの原則を理解することが重要です。高度なヒントには、データのエクスポート/インポートと許可管理が含まれ、深いセキュリティの理解が必要です。潜在的な問題にはSQLインジェクションが含まれ、ソリューションはパラメーター化されたクエリとバックアップです。パフォーマンスの最適化には、SQLステートメントの最適化とインデックスの使用が含まれます。ベストプラクティスは、コード仕様、セキュリティプラクティス、および定期的なバックアップを強調しています。

phpmyAdminの脆弱性の概要 phpmyAdminの脆弱性の概要 Apr 10, 2025 pm 10:24 PM

PHPMyAdminセキュリティ防衛戦略の鍵は次のとおりです。1。PHPMyAdminの最新バージョンを使用し、PHPとMySQLを定期的に更新します。 2.アクセス権を厳密に制御し、.htaccessまたはWebサーバーアクセス制御を使用します。 3.強力なパスワードと2要素認証を有効にします。 4.データベースを定期的にバックアップします。 5.機密情報が公開されないように、構成ファイルを慎重に確認します。 6。Webアプリケーションファイアウォール(WAF)を使用します。 7.セキュリティ監査を実行します。 これらの測定は、不適切な構成、古いバージョン、または環境セキュリティのリスクにより、PHPMyAdminによって引き起こされるセキュリティリスクを効果的に削減し、データベースのセキュリティを確保することができます。

Linuxの5つの柱:彼らの役割を理解する Linuxの5つの柱:彼らの役割を理解する Apr 11, 2025 am 12:07 AM

Linuxシステムの5つの柱は次のとおりです。1。Kernel、2。SystemLibrary、3。Shell、4。FileSystem、5。SystemTools。カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。システムライブラリは、アプリケーション用の事前コンパイルされた機能を提供します。シェルは、ユーザーがシステムと対話するインターフェイスです。ファイルシステムはデータを整理して保存します。また、システムツールはシステム管理とメンテナンスに使用されます。

See all articles