這篇文章很有分享價值,因為我們在實際的生產環境中需要將資料庫進行自動備份,然後上傳到指定的位置,當然也可以像以下文章中所講的一樣,上傳到你指定的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傳到伺服器
如果是Access,購買主機的時候有Ftp用戶名和密碼之類的(一般是空間控制面板的用戶名密碼)
打開ftp,輸入空間ip,用戶名密碼連接後上傳文件!
如果是別的資料庫,比如:mysql mssql等,首先你要購買了資料庫,如何在資料庫控制面板登陸,在裡面有導入資料庫的功能,mysql資料庫備份一般是xxx.sql
mssql資料庫備份一般是xxx.bak,導入備份文件即可!
Ⅲ ftp怎麼連接sqlservice資料庫 網站傳上去了,數據也傳上去了。
FTP主要是用來上傳網站源碼的,如果你的資料庫是access資料庫,可以直接上傳,不用改連接資料庫的路徑就能直接用了。
但是如果是SqlServer或者MySql資料庫,必須到空間控制面板去把資料庫導入到空間裡面,直接上傳到FTP裡面是沒用的,導入成功以後,還需要在程序源碼中修改連接數據的用戶名和密碼,必須跟空間分配的那個保持一致。
如果你不知道資料庫在哪兒連接上傳的話,最好是咨詢下你的空間商,不同空間商控制面板都不一樣,所以還是咨詢你的空間商比較靠譜。
Ⅳ ftp怎麼連接sqlservice資料庫 網站傳上去了,數據也傳上去了。
你好!
FTP連接不到sqlserver上,只能連到空間上。SQLSERVER有兩種方法,一是傳到空間上,讓空間商幫你弄,別一種是通過你自己本地SQL資料庫連接到伺服器的資料庫上。如果你要上傳到空間上就是導出然後壓縮到壓縮包傳上去。希望對你有幫助
如果對你有幫助,望採納。
Ⅳ 求助,如何把MYSQL資料庫上傳到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表的語句,如果沒有,而原資料庫存在同名表格,也會出錯,這時需要清空原資料庫.
Ⅵ 怎樣讓自己的SQL server資料庫文件上傳到伺服器
如果您要將自己的資料庫導入伺服器,
1. 可以點擊下面的「建立備份」一。
2. 點擊建立「備份用FTP」。
3. 用FTP將您自己的資料庫備份文件上傳到伺服器上,覆蓋伺服器上的1.bak(SQL 2000)/1.sql(Mysql)。
4. 再點從備份一中的「備份中還原。」
5. 如果導入過程中發生意外,需要重新導入,您要先點清空資料庫。
(在備份還原前,請您先停止您的網站一分鍾後再操作,否則資料庫正在使用中會造成操作失敗。)
還不清楚的話,你訪問下這個網址:
http://www.newkeji.com/help/cute.asp