さくらのVPSを2台ローカル接続してphpMyAdminでMySQLに接続
「さくらのVPS」を1台追加し、スイッチを利用してローカルネットワークで接続してみた。
- スイッチを作成しローカルネットワークで2台を接続
- 2台目のMySQLに、1台目のphpMyAdminから接続
- NFSでディレクトリをマウントし、1台目のMovableTypeから2台目の公開ディレクトリに静的HTMLを出力
なお、OSバージョンは、CentOS release 6.6 (Final) です。
スイッチの作製
VPSコントロールパネルにログインしてスイッチを作成。
以下の公式サイトの説明がわかりやすい。
スイッチの作成と削除|さくらインターネット公式サポートサイト
サーバーをスイッチに接続
サーバーを停止させないとスイッチに接続することができないので停止。
[root@sv-a ~]# shutdown -h now
スイッチの接続方法は以下の公式サイトの説明のとおり。
ローカルネットワーク接続|さくらインターネット公式サポートサイト
2台ともに eth1 にスイッチを接続。ドロップダウンリストから先ほど作成したスイッチを選ぶと、ほんの十数秒ほどで接続設定が完了する。
今回設定する内容
今回設定するサーバーの名前とローカルIPアドレスは以下のとおり。
- sv-a : 192.168.1.1 (phpMyAdmin, MovableType がインストールされている既存サーバー)
- sv-b : 192.168.1.2(今回増設した新サーバー)
ネットワーク設定
2台ともネットワークの設定を行いネットワークサービスを再起動する。また、ホスト名も登録しておく。
以下は、既存サーバーの方の設定。カッコ内は新サーバーの設定。
[root@sv-a ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1" IPADDR="192.168.1.1" (192.168.1.2) NETMASK="255.255.255.0" ONBOOT="yes" TYPE="Ethernet" IPV6INIT="no" IPV6_ROUTER="no" [root@sv-a ~]# vim /etc/hosts 192.168.1.1 sv-a.internal sv-a 192.168.1.2 sv-b.internal sv-b [root@sv-a ~]# /etc/rc.d/init.d/network restart
pingで疎通確認。
[root@sv-a ~]# ping -c 3 192.168.1.2 [root@sv-a ~]# ping -c 3 sv-b
2台目のMySQLに1台目のphpMyAdminからアクセス
MySQLのアカウント作成
sv-b のMySQLに、sv-a からアクセスできるアカウントを作成する。
[root@sv-b ~]# mysql -u root -p mysql> grant all privileges on *.* to root@"192.168.1.1" identified by 'パスワード' with grant option;
iptablesの設定
2台目のサーバーのファイアーウォールで、eth1経由で192.168.1.1 からのアクセスのみ 3306(MySQL) ポートへ通すようにする。
[root@sv-b ~]# vim /etc/sysconfig/iptables (以下の行を適切な場所に追加) -A RH-Firewall-1-INPUT -i eth1 -s 192.168.1.1 -p tcp --dport 3306 -j ACCEPT [root@sv-b ~]# /etc/rc.d/init.d/iptables restart
RH-Firewall-1-INPUT の部分は、 INPUT など、現在使用している iptables の他のものに合わせて変更する。
1台目から接続確認
[root@sv-a ~]# mysql -u root -h 192.168.1.2 -p
phpMyAdminの設定
管理用DBとアカウントを作成するため、1台目からSQLをダウンロードして2台目にアップロード。
1台目からダウンロードするファイル /usr/share/phpMyAdmin/examples/create_tables.sql 2台目のアップロード先 /root/tmp/create_tables.sql
管理用DBとアカウントを作成する。
[root@sv-b ~]# mysql -u root -p mysql> source /root/tmp/create_tables.sql mysql> show databases; → phpmyadmin というDB ができていれば成功 mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO pma@'192.168.1.1' IDENTIFIED BY 'パスワード'; mysql> exit
1台目のphpMyAdminの設定を行う。設定ファイルの Servers configuration 部分の、First server パートをコピーして追加し、host と pma のパスワードを2台目の設定に変更すれば良い。
[root@sv-a ~]# vim /etc/phpMyAdmin/config.inc.php /* * Servers configuration */ $i = 0; /* * First server(1台目の設定部分) */ $i++; /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; ~中略~ $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; /* Contrib / Swekey authentication */ // $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf'; /* * Second server(コピーして追加した2台目の設定部分) */ $i++; /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = '192.168.1.2'; (ホストを変更) ~中略~ $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'パスワード';(パスワードを変更) $cfg['Servers'][$i]['user'] = 'pma'; $cfg['Servers'][$i]['password'] = 'パスワード';(パスワードを変更) ~中略~ /* * End of servers configuration */
設定を保存して、1台めのphpMyAdminのログイン画面に行くと、ドロップダウンで2台目のMySQLを選択できるようになっているはず。
ディレクトリをマウントして MovableType で静的HTMLを出力する方法は次回の記事に。