今天把數據服務器和業務服務器進行了分離,其中涉及對MySQL開放遠程訪問的,作出記錄如下以供備忘:
假設數據服務器IP地址為192.168.1.101,業務服務器IP地址為192.168.2.51。
首先在數據服務器192.168.1.101上安裝好MySQL實例,然後使用root訪問MySQL並建立好所需要的數據庫和用戶。
代碼如下 復制代碼$ mysql -uroot -p
Enter Password:
> CREATE DATABASE business_db;
> GRANT ALL PRIVILEGES ON `business_db`.* TO 'business'@'192.168.2.51' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
這裡以創建business_db數據庫為例,授權用戶為business,其中緊跟著@符號後面的是業務服務器的IP地址,這樣就指定了business用戶只能通過這個IP地址訪問遠程數據庫。後面的'mypassword'為你想設置的密碼。
對於已經存在的用戶我們可以通過下面的指令對遠程訪問主機進行更新(以user1為例)。
代碼如下 復制代碼 $ mysql -uroot -p大家可能注意到了這裡指定了業務服務器192.168.2.51,實際上允許任何主機連接只需要將IP地址改為%即可。
最後還需要修改MySQL綁定的IP地址,還是在我們的數據服務器上,修改配置文件/etc/mysql/my.cnf找到[mysqld]節的
代碼如下 復制代碼bind-address。
[mysqld]
#
# * Basic Settings
#
....
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 192.168.1.101
最後不要忘記重新啟動一下MySQL守護進程:
service mysql restart
現在讓我們回到業務服務器,接下來我們將數據從舊MySQL遷移到新的MySQL數據庫服務器上。
使用mysqldump命令導出數據庫,格式如下,請按實際要求對參數進行替換:
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
比如導出數據庫business_db
mysqldump -uroot -p business_db > business_db.sql
然後將導出的備份文件business_db.sql復制到數據庫服務器192.168.1.101上,在數據庫服務器上用root登錄並使用source指令:
這裡~/business_db.sql是指定的路徑,具體為存放備份文件business_db.sql備份文件的路徑。
對於業務服務器來說下面修改phpmyadmin的配置,讓其使用我們新的數據庫服務器,如果對phpmyadmin使用多個遠程數據庫管理感興趣的話 可以在本站搜索哦。
修改位於phpmyadmin路徑下的配置文件libraries/config.default.php:
代碼如下 復制代碼 /**當修改好所有使用MySQL的應用的配置文件後,我們可以讓舊服務器上的MySQL服務器光榮退休了:
service mysql stop
update-rc.d mysql disable
注意我這裡只是將mysql停止並禁用,沒有卸載,主要考慮到後續運行的問題,如果要卸載直接使用apt-get remove --purge mysql就可以了。