日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MYSQL数据备份之mysqldump命令详解(附脚本定时备份)

發(fā)布時(shí)間:2024/1/1 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MYSQL数据备份之mysqldump命令详解(附脚本定时备份) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、常見備份命令介紹
備份命令備份速度恢復(fù)速度介紹功能一般用于
cp物理備份、靈活性低很弱少量數(shù)據(jù)備份
mysqldump邏輯備份、適用所有存儲(chǔ)引擎一般中小型數(shù)據(jù)量備份
xtrabackup較快較快實(shí)現(xiàn)innodb熱備、對(duì)存儲(chǔ)引擎有要求強(qiáng)大較大規(guī)模的備份

熱備份指的是當(dāng)數(shù)據(jù)庫進(jìn)行備份時(shí), 數(shù)據(jù)庫的讀寫操作均不是受影響
溫備份指的是當(dāng)數(shù)據(jù)庫進(jìn)行備份時(shí), 數(shù)據(jù)庫的讀操作可以執(zhí)行,但是不能執(zhí)行寫操作
冷備份指的是當(dāng)數(shù)據(jù)庫進(jìn)行備份時(shí), 數(shù)據(jù)庫不能進(jìn)行讀寫操作, 即數(shù)據(jù)庫要下線

二、mysqldump備份

2.1、mysqldump命令介紹

[root@]> mysqldump -helpUsage: mysqldump [OPTIONS] database_name [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help 1.登錄選項(xiàng):-u user:指定用戶-h host:指定主機(jī)-p:表示要使用密碼-E, --events: 備份事件調(diào)度器-R, --routines: 備份存儲(chǔ)過程和存儲(chǔ)函數(shù) 2.備份選項(xiàng):--all-databases:備份所有數(shù)據(jù)庫--databases db1 db2:備份指定的數(shù)據(jù)庫--single-transaction:對(duì)事務(wù)引擎執(zhí)行熱備--flush-logs:更新二進(jìn)制日志文件--master-data=21:每備份一個(gè)庫就生成一個(gè)新的二進(jìn)制文件(默認(rèn))2:只生成一個(gè)新的二進(jìn)制文件--quick:在備份大表時(shí)指定該選項(xiàng)
2.2、查看所屬數(shù)據(jù)庫、用戶的權(quán)限

1、查看mysql數(shù)據(jù)庫中的所有用戶:

mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

2、查看數(shù)據(jù)庫中具體某個(gè)用戶的權(quán)限:

mysql> show grants for 'user'@'localhost'; 或 mysql> select * from mysql.user where user='root'\G;

3、修改用戶權(quán)限:

mysql> grent all on *.* to `user`@`localhost`; mysql> flush privileges; Query OK, 0 rows affected (0.00 sec).

4、向數(shù)據(jù)庫施加讀鎖

mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec)
三、命令備份示例
**導(dǎo)出命令大全** #導(dǎo)出education數(shù)據(jù)庫里面的users表的表數(shù)據(jù)和表結(jié)構(gòu)mysqldump -u[用戶名] -h[ip] -p[密碼] -P[端口號(hào)] 數(shù)據(jù)庫名 表名 >導(dǎo)出的文件名.sqlmysqldump -uroot -h127.0.0.1 -proot -P3306 education users>d:/user.sql #導(dǎo)出包括系統(tǒng)數(shù)據(jù)庫在內(nèi)的所有數(shù)據(jù)庫(all.sql默認(rèn)保存在bin文件夾下面)mysqldump -uroot -proot --all-databases>all.sql #導(dǎo)出多張表:mysqldump -uroot -proot --databases test --tables t1 t2>two.sql #只導(dǎo)出表結(jié)構(gòu)不導(dǎo)表數(shù)據(jù),添加“-d”命令參數(shù)mysqldump -uroot -h127.0.0.1 -proot -P3306 -d education users>d:/user.sql #只導(dǎo)出表數(shù)據(jù)不導(dǎo)表結(jié)構(gòu),添加“-t”命令參數(shù)mysqldump -uroot -h127.0.0.1 -proot -P3306 -t education users>d:/user.sql #只導(dǎo)出test數(shù)據(jù)庫的表結(jié)構(gòu)導(dǎo)出:mysqldump -uroot -proot --no-data --databases test>s1.sql導(dǎo)入:mysql -uroot -proot -h127.0.0.1 -P3306 test<s1.sql**導(dǎo)入命令大全**格式:mysql -h[ip] -P[(大寫)端口] -u[用戶名] -p[密碼] [數(shù)據(jù)庫名] < d:XX.sql(路徑) mysql -uroot -proot -h127.0.0.1 -P3306 education<d:/database.sqlmysql -uroot -proot -h127.0.0.1 -P3306 <d:/all_database.sql #命令行導(dǎo)入mysql> use test;mysql> source /home/test/database.sql
四、腳本備份示例:
#!/bin/bash #NAME:數(shù)據(jù)庫備份 #DATE:*/*/* #USER:***#設(shè)置本機(jī)數(shù)據(jù)庫登錄信息 mysql_user="user" mysql_password="passwd" mysql_host="localhost" mysql_port="3306" mysql_charset="utf8mb4" date_time=`date +%Y-%m-%d-%H-%M`#保存目錄中的文件個(gè)數(shù) count=10 #備份路徑 path=/***/#備份數(shù)據(jù)庫sql文件并指定目錄 mysqldump --all-databases --single-transaction --flush-logs --master-data=2 -h$mysql_host -u$mysql_user -p$mysql_password > $path_$(date +%Y%m%d_%H:%M).sql [ $? -eq 0 ] && echo "-----------------數(shù)據(jù)備份成功_$date_time-----------------" || echo "-----------------數(shù)據(jù)備份失敗-----------------"#找出需要?jiǎng)h除的備份 delfile=`ls -l -crt $path/*.sql | awk '{print $9 }' | head -1` #判斷現(xiàn)在的備份數(shù)量是否大于閾值 number=`ls -l -crt $path/*.sql | awk '{print $9 }' | wc -l` if [ $number -gt $count ] thenrm $delfile #刪除最早生成的備份,只保留count數(shù)量的備份#更新刪除文件日志echo "-----------------已刪除過去備份sql $delfile-----------------"fi

增加定時(shí)備份

crontab -e* * * * * - - - - - | | | | | | | | | +----------星期中星期幾 (0 - 6) (星期天 為0) | | | +---------------月份 (1 - 12) | | +--------------------一個(gè)月中的第幾天 (1 - 31) | +-------------------------小時(shí) (0 - 23) +------------------------------分鐘 (0 - 59)添加定時(shí)任務(wù)(每天12:50以及23:50執(zhí)行備份操作) 50 12,23 * * * cd /home/;sh backup.sh >> log.txt

總結(jié)

以上是生活随笔為你收集整理的MYSQL数据备份之mysqldump命令详解(附脚本定时备份)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。