201602261150MySQL 移機作業 - 命令模式 - 備份 web 系統

 將某主機上的 MySQL 跟資料移機到另一台主機,這通常會發生在更換新主機的時後,這篇就簡單的說明該如何做!!

前提需求:
> Host B 安裝好作業系統
> 安裝 MySQL
# sudo yum install -y install php php-mysql mysql mysql-server       (當然你也可以只單純的安裝 MySQL ,不裝PHP)
# sudo chkconfig mysqld on
# sudo service mysqld start

>設定防火牆,開啟 Port:3306
# sudo vi /etc/sysconfig/iptables
# sudo service iptables restart
sudo /sbin/iptables -L -n

>MySQL 基本設定 - 設定帳號與密碼
sudo mysql_secure_installation
# mysql -u root -p
>> use mysql;
>> insert into user (host,user,password) values ('%','your_account',password('your_password'));
>> GRANT ALL ON *.* TO 'your_account'@140.112.1.1 IDENTIFIED BY 'your_password' WITH GRANT OPTION;
>> FLUSH PRIVILEGES;
>> quit

-------移機作業---------------------------------------------------------------------------------

Step 1:登入原本的資料庫主機 Host_A
> 確認防火牆 / iptables 所開啟 port 3306 的對象是否正確

Step 2:在 Host_A 會出資料庫
A# mysqldump -u root -p --all-databases > hosta_db_export.sql

Step 3:複製匯出檔案到目的主機
A# scp hosta_db_export.sql   username@host_b:~/

Step 4:在 Host_B 匯入資料到新的資料庫
B# mysql -u root -p < hosta_db_export.sql

Step 5:更新 MySQL 或 重新啟動
B# mysql_upgrade -u root -p

B# sudo service mysqld restart

Step 6:關閉原有主機 Host A 
A# sudo shutdown -h now

Step 7:變更新主機 Host_B 的 IP 至原本主機的 IP

Step 8:測試連接此資料庫系統的服務,觀察連線是否正常。

~End

 

------ 備份系統 --------------------------------------------------------

同理的,如果要備份你的 wordpress、Gallery、Joomla 、Zenphoto 你需要做

# sudo tar zcvf  /backup/allweb_日期.tar.gz   /var/www/html
mysqldump -u root -p --all-databases > /backup/allweb_db_日期.sql

然後將其複製一份到外部儲存空間,確保資料安全

QQ:你在 Host_B 的 MySQL 設定階段「mysql_secure_installation」勢必會設定 root 密碼與新增管理者帳號,那被「mysql -u root -p < hosta_db_export.sql」 更新、上傳資料後,其帳號是?
Ans:因為採用了「--all-databases」模式,意即 MySQL 裡的 mysql 資料庫也會被更新,在未「mysql_upgrade -u root -p」或 「sudo service mysqld restart」前原本的帳號都還能登入,一更新後就必須用原本 Host_A 上面所設定的帳號與密碼了。這樣的好處,讓你原有的 web 系統可無縫的切換過來。

回應
Google Search
Google
平均分數:0 顆星
投票人數:0
我要評分:
Google