這篇文章很有分享價值,因為我們在實際的生產環境中需要將資料庫進行自動備份,然後上傳到指定的位置,當然也可以像以下文章中所講的一樣,上傳到你指定的FTP伺服器中,從而實現Mysql資料庫自動備份並上傳到遠程FTP伺服器的部署,在Linux技術交流群中,也有朋友會遇到這方面的問題,可以將此文分享給群友共益。
注意:任何的操作都會具有風險性,請在本機實際測試通過之後再部署到伺服器環境,這樣即熟練的掌握了操作的技巧,也能在測試過程中發現問題,尋找解決方法。
說明:我這里要把MySql資料庫存放目錄/var/lib/mysql下面的data資料庫備份到/home/mysql_data裡面
並且保存為mysqldata_bak_2012_12_19.tar.gz的壓縮文件格式(2012_12_19是指備份執行時當天的日期)
然後只保留最近7天的備份
再把備份文件通過ftp伺服器上傳到指定空間,只保留最近7天的數據
實現步驟:
1、創建保存備份文件的路徑:/home/mysql_data
cd /home
mkdir mysql_data
2、創建備份腳本文件:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
輸入以下內容:
#######################################################################################################
#!/bin/sh
DUMP=/usr/bin/mysqlmp #mysqlmp備份文件執行路徑
OUT_DIR=/home/mysql_data #備份存放路徑
LINUX_USER=root #系統用戶名
DB_NAME=data #要備份的資料庫名字
DB_USER=root #資料庫賬號 注意:非root用戶要用備份參數 --skip-lock-tables,否則可能會報錯
DB_PASS=123456 #資料庫密碼
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
cd $OUT_DIR #進入備份存放目錄
DATE=`date +%Y_%m_%d` #獲取當前系統時間
OUT_SQL="$DATE.sql" #備份資料庫的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最終保存的資料庫備份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #備份
tar -czf $TAR_SQL ./$OUT_SQL #壓縮為.tar.gz格式
rm $OUT_SQL #刪除.sql格式的備份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改備份資料庫文件的所有者
find $OUT_DIR -name "mysqldata_bak_*" -type f -mtime +$DAYS -exec rm {} \; #刪除7天前的備份文件
deldate=` date -d -7day +%Y_%m_%d ` #獲取7天前的時間
ftp -n<<!
open 192.168.1.1 21 #打開ftp伺服器。21為ftp埠
user admin 123456 #用戶名、密碼
binary #設置二進制傳輸
cd mysqlbak #進入ftp目錄(這個目錄必須為ftp空間真實存在的目錄)
lcd /home/mysql_data #列出本地目錄
prompt
put mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz #上傳目錄中的文件
delete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #刪除ftp空間7天前的備份
close
bye !
#######################################################################################################
3、修改文件屬性,使其可執行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab
vi /etc/crontab
在下面添加
30 1 * * * root /home/mysql_data/mysql_databak.sh
表示每天凌晨1:30分執行備份
5、重新啟動crond使設置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #設為開機啟動
service crond start #啟動
每天你在/home/mysql_data目錄下面可以看到類似mysqldata_bak_2012_12_19.tar.gz這樣的壓縮文件
如果需要恢復文件的時候,只需要把這個文件解壓即可
解壓縮tar -zxvf mysqldata_bak_2012_12_19.tar.gz
至此,我們完成了Linux中Mysql資料庫自動備份並上傳到遠程FTP伺服器的部署。
⑵ 如何用FTP把資料庫備份
informix資料庫後台 shell命令
----------------------------
dbexport 資料庫名
ftp 伺服器地址
用戶名
密碼
mput 資料庫名.exp
bye
-----------------------------
Sqlserver資料庫查詢分析器命令
----------------------------
backup database 資料庫名 to disk='所存路徑'
或者直接用sql server所帶的作業調度來執行資料庫的備份
然後用寫一個批處理程序
ftp
open 伺服器地址
用戶名
密碼
mput 所存路徑
bye
然後用windows計劃任務來執行這個批處理命令。
-----------------------------
⑶ 資料庫伺服器 和FTP伺服器之間有什麼聯系
不確切的說:比如網站內容10G、是存放在網頁伺服器空間的(你所說的 ftp),而將網站內容10G壓縮後、如2G(這個是存放在資料庫伺服器空間的),一般資料庫空間 為 網頁空間的 1/5即可。
⑷ 如何通過ftp上傳mysql到空間或下載mysql資料庫的備份資料新手,求指教,詳細點,謝了
一般在空間控制面板中有資料庫FTP信息的,設置方法同空間FTP,設置好登錄即可。
如果只是為了PHP程序安裝,那麼建議用帝國備份王試試,使用方法,網上搜一下。
⑸ 用FTP上傳完文件後怎麼設定首頁和關聯文件
……一般的web伺服器默認根目錄的index.html就是首頁,你把你的首頁名命名為index.html放在根目錄下就可以了關聯可用連接,比如在index.html的代碼里加上<a href='另一個頁面路徑'>內容</a>名字是<titile>網站的名字</title>
⑹ ftp怎麼連接sqlservice資料庫 網站傳上去了,數據也傳上去了。
FTP主要是用來上傳網站源碼的,如果你的資料庫是access資料庫,可以直接上傳,不用改連接資料庫的路徑就能直接用了。
但是如果是SqlServer或者MySql資料庫,必須到空間控制面板去把資料庫導入到空間裡面,直接上傳到FTP裡面是沒用的,導入成功以後,還需要在程序源碼中修改連接數據的用戶名和密碼,必須跟空間分配的那個保持一致。
如果你不知道資料庫在哪兒連接上傳的話,最好是咨詢下你的空間商,不同空間商控制面板都不一樣,所以還是咨詢你的空間商比較靠譜。
⑺ vb6 如何連接ftp伺服器的access資料庫
首先,FTP是文件傳輸協議,FTP伺服器是用來上傳或下載文件的,跟資料庫連接沒有一毛錢的關系,VB6可以通過INET控制項把資料庫下載到本地再使用,但這樣就失去任何意義了。
其次,ACCESS資料庫屬於單機文件型資料庫,不能用在網路多用戶環境。在區域網中,ACCESS資料庫可以放到一個共享文件夾中供其他電腦使用,但這仍然屬於單機使用范疇,不是網路應用。如果實在要在廣域網中用,可以把ACCESS資料庫放到WEB伺服器,然後用ASP搞個數據介面程序,VB6程序用xmlhttp+XML技術通過這個ASP程序間接實現對資料庫的讀寫。不過這樣做的效率與安全性是慘不忍睹的。
⑻ ftp怎麼連接sqlservice資料庫 網站傳上去了,數據也傳上去了。
你好!
FTP連接不到sqlserver上,只能連到空間上。SQLSERVER有兩種方法,一是傳到空間上,讓空間商幫你弄,別一種是通過你自己本地SQL資料庫連接到伺服器的資料庫上。如果你要上傳到空間上就是導出然後壓縮到壓縮包傳上去。希望對你有幫助
如果對你有幫助,望採納。
⑼ 如何在FTP空間配置資料庫
一 備份數據 1,利用PW後台的數據備份功能進行備份.注意的是在備份數據的時候,為了數據的完整性,建議最好先關閉論壇,後台更新所有緩存和索引. 2,利用phpmyadmin,進行備份,具體如何備份,這里就不介紹.不清楚的可以查閱相關文檔,很簡單的.這里備份的文件是一個獨立sql文件. 以上方法一般適用與中小型論壇的備份,數據量比較小的時候還是很實用的,一般多為虛擬主機用戶使用.大型論壇的備份一般是 3,4兩種操作..主要是比較簡單操作,一些我個人認為比較復雜且不是很實用的方法就不介紹了不如通過Mysqlhot,使用binlog機制,增加mysql的事物日誌記錄等,這里就不介紹了.以下下操作一般有伺服器許可權的朋友才可以的. 3,直接復制或者打包資料庫文件,復制文件夾,大家應該都明白,我們來講打包,linux下用tar命令實現簡單有效,速度快.Win 下,直接用winrar或者winzip 搞定.注意需要暫停mysql服務. 4,Mysqlmp,是mysql自帶的腳本,假如資料庫名為abc,用戶名為:abcuser,密碼為123,,那應該使用 命令: mysqlmp -uabcuser -p123 adc > pwabc_bak.sql ,pwabc_bak.sql 你可以任意的命名. 二 數據還原 1,針對第一種備份方法,也是最普遍使用的.在恢復論壇數據的時候,要關閉php.ini文件中的safe mode,恢復完數據後,再打開SAFE MODE就可以了。(自己伺服器得才需要此設置,普通虛擬空間用戶不用此設置) >>用FTP軟體下載老論壇所有文件 >>將所有文件上傳至新空間 >>打開網頁 你的論壇地址/admin.php 用你的論壇創始人帳號登陸 >>數據恢復(隨便點一個文件,程序會自動將剩餘文件導入的) 以上方法可保留所有數據及插件和模板。 對於不需要模板的或者不需要原來的插件的 >>老論壇備份數據,用FTP拉到本地。(具體在data目錄下) >>上傳程序包里的文件到新空間,全新安裝 >>用FTP軟體將備份的數據上傳到新空間的data目錄下 >>用論壇創始人帳號進入後台,數據恢復 如果後台資料庫忘記了,可以直接修改sql_config.php里的資料庫帳號和創始人帳號密碼!這里輸入的創始人密碼不能直接是明文.需要是MD5加密過後的. 這里就給大家一個簡單的 MD5密文 [] 明文 [123456]之後就可以通過/admin.php 剛才修改的帳戶密碼登陸論壇了.. 2,對於phpmysql備份的數據,在2M以下可以直接導入資料庫中(至於怎麼導,看相關文檔,很簡單.)數據量很大的情況只能到伺服器上,伺服器上 mysql 命令導入(具體導入將在"4"中介紹)虛擬主機用戶,那麼就得聯系你的空間商,讓他們協助完成數據的恢復. 3,對於打包資料庫文件的,可以直接解壓 把資料庫文件 放到你資料庫名的目錄下. 在linux下注意資料庫文件的許可權.一般都是mysql:mysql. Win 下關系不是很大,除非你做了特殊的許可權設置. 4,對於mysqlmp 導出數據, 按照備份數據中的舉例用戶來演示, 則命令為: mysql -uabcuser -p123 abc < abc_bak.sql 注意: 無任何錯誤一般來說就是正常完成。通常在使用 phpmyadmin 導入的sql腳本中有create database語句,會導致導入數據出錯,因為database 已經存在,把這段語句刪除之,再次檢查客戶的建表語句前是否有drop表的語句,如果沒有,而原資料庫存在同名表格,也會出錯,這時需要清空原資料庫.