1. 程式人生 > >linux定時備份mysql資料庫,及解決crontab執行時生成資料庫檔案為空的問題

linux定時備份mysql資料庫,及解決crontab執行時生成資料庫檔案為空的問題

一、用命令實現備份

進入mysql的bin目錄(mysql安裝目錄的下一級目錄)

1、備份資料

#mysqldump -uusername -ppassword discuz >discuz_2010-04-01.sql
-uusernae:-u+mysql的使用者名稱
-ppassword:-u+mysql的密碼
discuz:資料庫名

這樣就把discuz資料庫所有的表結構和資料備份到discuz_2010-04-01.sql裡了,

如果資料量大會佔用很大空間,這時可以利用gzip壓縮資料,命令如下:
#mysqldump -uusername -ppassword discuz | gzip >discuz_2010-04-01.sql.gz

系統崩潰,重建系統時,可以這樣恢復資料:
#mysql -uusername -ppassword discuz <discuz_2010-04-01.sql

從壓縮檔案直接恢復:
#gzip < discuz_2010-04-01.sql.gz | mysql -uusername-ppassword discuz

二、利用crontab,系統每天定時備份mysql資料庫

1、建立儲存備份檔案的路徑/mysqldata
#mkdir /mysqlbak

2、在mysql的bin目錄新建可執行檔案:
vim mysql_bak.sh
新增文字 /root/mysql/bin/mysqldump -uusername -ppassword discuz| gzip > /mysqlbak/mysql_bak`date +%Y-%m-%d_%H%M%S`.sql.gz
儲存退出vi
注意:mysqldump 要為絕對路徑
`date +%Y-%m-%d_%H%M%S`的` 不是英文單引號,而是英文模式下,Esc按鍵下面的那個按鍵


3、修改檔案屬性,使其可以執行
#chmod +x /mysqlbak/mysql_bak.sh

4、修改/etc/crontab
即:vim /etc/crontab
在下面新增一行
01 3 * * * /mysqlbak/mysql_bak.sh
表示每天3點01分執行備份

也可以使用命令crontab -e
新增一行 01 3 * * * /mysqlbak/mysql_bak.sh

兩者的區別我還不清楚,稍候補充吧,我目前使用的是命令crontab -e

三、資料的恢復
進入mysql的bin目錄
建立資料庫
#mysqladmin create discuz
恢復資料
#mysql discuz </mysqldata/discuz_2010-04-01.sql

我遇到的問題就是直接執行mysql_bak.sh時可以正常備份資料庫,但是crontab定時執行生成的備份檔案就為空了,經過查詢,原因就是可執行檔案mysql_bak.sh中mysqldump的命令沒有寫絕對路徑導致的,因為直接執行時是在mysql的bin目錄下執行的,所以沒有問題,但是crontab就不是在mysql的bin下了,所以找不到mysqldump的命令了。

相關推薦

linux定時備份mysql資料庫解決crontab執行生成資料庫檔案的問題

一、用命令實現備份 進入mysql的bin目錄(mysql安裝目錄的下一級目錄) 1、備份資料 #mysqldump -uusername -ppassword discuz >discuz_2010-04-01.sql -uusernae:-u+mysql的使用者名

linux定時備份mysql資料庫

1、檢視磁碟空間情況: [[email protected] backup]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 17G 2.7G 15G 16

linux定時備份mysql數據庫文件

設定 mysql 密碼 mysql數據庫 lin dsm 寫入 退出 rac 1。設定定時器:終端敲入:crontab -e命令 2,然後寫入 00 23 * * * /home/db_bak_file/dbbak.sh >>/home/db_

linux定時備份MySQL數據庫並刪除七天前的備份文件

/dev/ rdquo .sh 文件的 文件名 del l數據庫 blog 出錯 1、創建備份文件夾 #cd /bak#mkdir mysqldata 2、編寫運行腳本 #nano -w /usr/sbin/bakmysql.sh 註:如使用nano編輯此代碼需在每

linux 定時備份mysql

1,寫指令碼 建立mysql的備份指令碼:backups.sh mysqldump -uroot -p1234 test >/home/test.sql 2,建立定時任務 開啟任務器 crontab -e 開寫: 0 0 * * * sh /home/backu

linux定時備份mysql並同步到其它服務器

%d 標準 -- 間距 也不能 stream shell命令 需要 name 1、mysql的定期備份;2、同步到其它服務器 mysql 備份 備份還原某個數據庫 備份還原 # 導出數據庫 /usr/bin/mysqldump -u root -ppwd databa

linux定時備份mysql並同步到其它伺服器

資料在任何一家公司裡面都是最核心的資產,定期備份則是為了保證資料庫出現問題的時候能夠及時回滾到最近的備份點,將損失縮小到最小 這篇文章將會兩部分來說明:1、mysql的定期備份;2、同步到其它伺服器 mysql 備份 備份還原某個資料庫 備份還原

linux定時備份mysql資料到windows

1.在linux伺服器上安裝ftp服務端軟體   Shell程式碼   wget http://mirror.

android 執行生成dex檔案並裝載呼叫

android apk生成原理如下圖所示 從圖可看出是把java檔案通過java編譯工具編譯成class檔案,再通過dex工具把class檔案轉成dex檔案 因為好奇,從網上看到執行時生成class檔案,再轉成dex檔案,動態載入呼叫的寫法,和大家分享。 package

通過windows伺服器定時任務定時備份mysql資料庫

為了防止伺服器宕機,導致mysql資料庫損壞無法修復,所以每天定時進行備份。一旦有問題直接還原資料庫! 50多個G的資料庫備份完成sql大概在20G,通過壓縮後大概在2G左右。 長時間進行後硬碟吃不消。所以做了一個定時清理備份檔案的指令碼。 點此進入下一篇文章->精簡mysql

Ubuntu Linux定時備份資料庫並上傳到阿里雲OSS

生產環境中可能會遇到各種各樣的問題,為了防止資料丟失和容災,定時備份資料庫就顯得很重要了。本文使用crontab定時執行shell指令碼,shell指令碼中備份MySQL到本地並上傳到阿里雲OSS物件儲存。 先看shell指令碼(shell指令碼處理了資料庫備份,資料庫備份同步上傳雲端,

linux 使用python3 定時備份mysql資料庫指令碼 修改配置直接可用。親測!

# Time : 2018/12/24 # Author : [email protected]#依賴包 pip install schedule#注意事項#1. linux中 使用os.system()包裹的命令有特殊字元如)(請使用轉義\)\(或'(' ')'#2. 輸入的資料庫密碼 -p+密

linux下使用crontab定時備份MYSQL資料庫

第一步:在伺服器上配置備份目錄程式碼: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/li

Java 在WindowLinux備份MySQL資料庫

轉自:http://www.linuxidc.com/Linux/2010-12/30652.htm   首先是Windows系統下:   給大家提個醒:   有人說用:"mysqldump --uroot --p123456 --opt"。但是我沒有成功,最後使用

linux伺服器上定時備份 mysql 資料庫

<span style="font-size:14px;color:#330033;">#!/bin/bash db_name=enocp_sta file_name="$db_name"_$(date +%Y%m%d_%H%M) dir=/root/backup/mysql/`date +%Y_

Linux定時備份MySQL資料庫

1、檢視磁碟空間情況: 既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗. 檢視磁碟空間情況:df -h 2、建立備份目錄: 上面我們使用命令看出/home下空間

linux備份mysql資料庫並ftp到遠端linux伺服器上

一、檢查FTP服務是否安裝 1.架設mysql資料庫裝在172.22.1.77上,如何安裝mysql略,簡稱為77。 2.作為備份機IP為172.22.1.150上,簡稱為150; 3.為150按照ftp命令,首先XSHELL遠端連線到150上,確認ftp

新增計劃任務每天定時備份mysql資料庫並打包壓縮

 1、備份資料庫指令碼 backups.bat @echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" "C:/Program Files/MySQL/MySQL Server 5.7/bin/mysqldump" --opt

mysql優缺點備份和冷備份概念

MySQL的優點: 1. 它使用的核心執行緒是完全多執行緒,支援多處理器。 2. 有多種列型別:1、2、3、4、和8位元組長度自有符號/無符號整數、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YE

實現線上伺服器定時備份mysql/sqlserver資料庫,並且本地伺服器定時從線上伺服器拉取資料庫備份

一、備份線上伺服器的mysql、sqlserver資料庫 1、centos伺服器:**.***.**.88(為了方便以root身份登入)       兩個資料庫:   test_mysql    test_sqlserver 2、用root身份建立資料庫備份存放目錄: