跨服務器備份:mysql
服務器A:192.168.5.193
測試數據庫TestDB
服務器B:192.168.5.194
目標:將服務器A上的測試數據庫定時備份到服務器B中sql
須要技術:mysqldump + crontab數據庫
步驟:
1.修改mysql遠程鏈接訪問權限
修改mysql的配置文件/mysql/my.conf,將bind-address後面增長遠程訪問IP地址或者禁掉這句話就可讓遠程機登錄訪問了。bash
2.增長服務器受權用戶
在服務器A上:服務器
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:工具
GRANT privileges ON databasename.tablename TO 'username'@'host'
說明:測試
本測試實例mysql語句爲:命令行
CREATE USER 'why'@'192.168.5.194' IDENTIFIED BY '123456'; GRANT privileges ON *.* TO 'why'@'192.168.5.194'; flush privileges; /*刷新一下權限*/
這樣就創建了以下的用戶權限表,在服務器端查看一下,命令爲:code
select user,host from mysql.user;
3.在服務器B上編寫以下腳本blog
#!/bin/bash my_user=why #服務器B的用戶(必須是已經受權的) my_pass=123456 #服務器A的用戶密碼 my_host=192.168.5.193 #要鏈接的服務器A my_db1=TestDB #想要導出的服務器A的數據庫(須要受權) mm_dir=/home/fabric/backup/t2.sql #導出的地址 mysqldump_cmd=/usr/bin/mysqldump #mysqldump的可運行指令地址 local_usr=root #本地數據庫的用戶名 local_pass=000000 #本地數據庫的密碼 mysql_cmd=/usr/bin/mysql #mysql的可運行指令地址 $mysqldump_cmd -h $my_host -u $my_user -p$my_pass $my_db1 > $mm_dir $mysql_cmd -u $local_usr -p$local_pass $my_db1 < $mm_dir
在命令行下進行測試,看看是否可以備份。
查看服務器A上的數據,這裏的圖形化工具是mysql workbench(使用起來還不錯)
運行如上腳本後,查看服務器B的數據。
/能夠看到這裏備份成功了/
1 * * * * ~/backupDatabases.sh
以上命令使得,每小時的第一分鐘,對數據庫進行備份,固然也能夠隨意修改一些時間。