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 系統可無縫的切換過來。