docker 中mysql備份

以下示例均在鏡像mysql:5.7.22基礎(chǔ)上應(yīng)用

一腥椒、備份mysql

1.創(chuàng)建容器testmysql

docker run -p 3307:3306 --name testmysql -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.22

2.創(chuàng)建數(shù)據(jù)庫test、數(shù)據(jù)表test1

docker exec -it testmysql /bin/bash //進入容器

mysql -uroot -p //進入數(shù)據(jù)庫

show databases; //查詢數(shù)據(jù)庫
create database test; // 創(chuàng)建名為test數(shù)據(jù)庫
use test;//切換到數(shù)據(jù)庫 test
create table test (id int);//創(chuàng)建名為test的數(shù)據(jù)表
insert into test (id) values (1); //插入一條數(shù)據(jù)
添加數(shù)據(jù)

2.mysqldump 備份

導(dǎo)出命令1(建議使用此命令)

docker exec -it mysql_server【docker容器名稱/ID】 mysqldump --defaults-extra-file=/etc/mysql/my.cnf test_db【數(shù)據(jù)庫名稱】 > /opt/sql_bak/test_db.sql【導(dǎo)出表格路徑】

(1)修改/etc/mysql/my.cnf文件

vim /etc/mysql/my.cnf

[mysqldump]
user=your_backup_user_name
password=your_backup_password
image.png

進入容器后執(zhí)行vim /etc/mysql/my.cnf嚼酝,如果報bash: vim: command not found
在容器內(nèi)執(zhí)行以下代碼下載vim即可

apt-get update
apt-get install vim

修改后,exit退出容器,重啟以下容器 docker restart testmysql【容器名稱/id】

執(zhí)行導(dǎo)出命令

docker exec -it testmysql mysqldump --defaults-extra-file=/etc/mysql/my.cnf test > /home/iotdev/cjj/test.sql

導(dǎo)出命令2
docker exec -it mysql_server【docker容器名稱/ID】 mysqldump -uroot -p12345【數(shù)據(jù)庫密碼】 test_db【數(shù)據(jù)庫名稱】 > /opt/sql_bak/test_db.sql【導(dǎo)出表格路徑】

docker exec -it testmysql mysqldump -p12345 test > /home/iotdev/cjj/test.sql

如果使用這個命令闻伶,導(dǎo)出的文件會有警告 ,在導(dǎo)入的時候報這個錯誤,需要把警告刪除再導(dǎo)入


導(dǎo)入

二够话、導(dǎo)入備份

1.創(chuàng)建容器testmysql1

docker run -p 3308:3306 --name testmysql1 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:5.7.22

2.導(dǎo)入命令

(1)先將文件導(dǎo)入到容器

docker cp **.sql 【容器名】:/root/

(2)進入容器

docker exec -ti 【容器名/ID】/bin/bash

(3)創(chuàng)建數(shù)據(jù)庫

mysql -uroot -p
create database test

(4)將文件導(dǎo)入數(shù)據(jù)庫

 mysql -uroot -p 【數(shù)據(jù)庫名】 < ***.sql

三蓝翰、加入定時任務(wù)
用crontab添加定時器光绕,參考詳情 https://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

1.添加myql_test.sh文件

#!/bin/bash

data_name="rap2-mysql-new"
data_dir="/mysql_data/rap2-new"
database="RAP2_DELOS_APP"
time="date +%H:%M"
docker exec data_name sh -c "rm -rf /database"
docker exec data_name sh -c "mkdirdatabase"
docker exec data_name sh -c "mysqldump -uroot -pfewsdkjk13_ --databasesdatabase > /database/data_`date +%Y%m%d_%H:%M`.txt" docker cpdata_name:database/data_dir

mv data_dir/database/data_date +%Y%m%d_%H:%M.sql data_dir/database/data_date +%Y%m%d_%H:%M.txt

將備份文件發(fā)送到郵箱 數(shù)據(jù)量小的情況下 服務(wù)器需要安裝 yum install mailx 并配置 yum install sharutils

修改 vi /etc/mail.rc

添加以下配置

set from=shenjianyu@thinktrader.net smtp=smtp.exmail.qq.com

set smtp-auth-user=shenjianyu@thinktrader.net smtp-auth-password=郵箱密碼

set smtp-auth=login

echo -e "rap2備份文件" | mail -s 'rap2備份' -a data_dir/database/data_date +%Y%m%d_%H:%M.txt 845142388@qq.com

if [ time = "12:00" ] then echo -e "rap2備份文件" | mail -s 'rap2備份' -adata_dir/database/data_`date +%Y%m%d_%H:%M`.txt 845142388@qq.com fi if [time = "20:00" ]
then
echo -e "rap2備份文件" | mail -s 'rap2備份' -a data_dir/database/data_date +%Y%m%d_%H:%M.txt chenjiajun@cmiot.chinamobile.com
fi
find $data_dir -mtime +7 -name 'data_*.txt' -exec rm -rf {} ;

以上代碼和之前的命令有些不一樣,之前的命令是直接生成到宿主機畜份,但不知為什么诞帐,直接執(zhí)行.sh文件是可以正常生成文件的,但使用定時器生成的文件內(nèi)容是空的爆雹,求大神答疑解惑停蕉。

問題代碼如下:

#!/bin/bash
data_dir="/home/iotdev/cjj/"
docker exec -it testmysql mysqldump -uroot -p12345 test > "$data_dir/data_`date +%Y%m%d_%H:%M`.sql"
2.添加定時任務(wù)

以下添加的是每分鐘執(zhí)行一次,可根據(jù)自己情況配置

crontab -e
* * * * * sh /home/cjj/mysql_test.sh 【.sh文件的位置】

*/15 * * * * sh /opt/cjj/rap2/rap2-delos-deploy/rap2_mysql_baskup.sh

四钙态、添加腳本谷徙,刪除時間太久的文件

// 刪除60分鐘前的文件
find $data_dir$container_dir -amin +60 -name 'data_*.sql' -exec rm -rf {} \; 

//刪除7天前的數(shù)據(jù)
find $data_dir$container_dir -mtime +7 -name 'data_*.sql' -exec rm -rf {} \; 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驯绎,隨后出現(xiàn)的幾起案子完慧,更是在濱河造成了極大的恐慌,老刑警劉巖剩失,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屈尼,死亡現(xiàn)場離奇詭異,居然都是意外死亡拴孤,警方通過查閱死者的電腦和手機脾歧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來演熟,“玉大人鞭执,你說我怎么就攤上這事∶⒋猓” “怎么了兄纺?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長化漆。 經(jīng)常有香客問我估脆,道長,這世上最難降的妖魔是什么座云? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任疙赠,我火速辦了婚禮,結(jié)果婚禮上朦拖,老公的妹妹穿的比我還像新娘圃阳。我一直安慰自己,他們只是感情好璧帝,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布捍岳。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祟同。 梳的紋絲不亂的頭發(fā)上作喘,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音晕城,去河邊找鬼泞坦。 笑死,一個胖子當著我的面吹牛砖顷,可吹牛的內(nèi)容都是我干的贰锁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼滤蝠,長吁一口氣:“原來是場噩夢啊……” “哼豌熄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起物咳,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锣险,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后览闰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芯肤,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年压鉴,在試婚紗的時候發(fā)現(xiàn)自己被綠了崖咨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡油吭,死狀恐怖击蹲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情婉宰,我是刑警寧澤歌豺,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站芍阎,受9級特大地震影響世曾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谴咸,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望骗露。 院中可真熱鬧岭佳,春花似錦、人聲如沸萧锉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叶洞,卻和暖如春鲫凶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衩辟。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工螟炫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人艺晴。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓昼钻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親封寞。 傳聞我的和親對象是個殘疾皇子然评,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355