MySQLレプリケーションの導入からネットワーク経由のログインまで
MySQLのレプリケーションに挑戦。
OSはUbuntu Server。MySQLのバージョンは5。
とりあえずここに書いてある通りに進める。
現場指向のレプリケーション詳説
http://www.irori.org/doc/mysql-rep.html
my.cnfの場所は /etc/mysql/my.cnf なので注意。
スレーブの設定までやったら、マスタ側の/etc/mysql/my.cnf の bind-address をコメントアウト。
セキュリティが心配なら、コメントアウトせずに127.0.0.1に加えて、スレーブ側のIPアドレスを追加しておくべし。
注意点としては、余計な心配をさける為にマスター、スレーブ共にmysqldをstopさせておくこと。
/etc/init.d/mysql stop
また、各種設定をする際ははmysqlを起動するけど、スレーブ側の設定をする時などは念のために
mysql>stop slave;
をしておくべし。
初めてなので色々慎重に。
スレーブにマスタのデータをコピーして、スレーブ側でmysqlを起動すると、debian-sys-maint の
パスが云々言われるので以下のサイトを参考にパスワードを変更する。
再インストールすると debian-sys-maint がアクセスできない?
http://pelican.ddo.jp/fukurou/mediawiki/index.php/MySQL%E3%81%AE%E8%A8%AD%E5%AE%9A
スレーブ側にマスタの情報を書き込んで
mysql>start slave;
したら
mysql> show slave status\G;
で状態を確認。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
ならば準備OK。
だめならば、設定の再度確認を。
ちなみに私はスレーブに設定するマスタ側の情報は、my.cnfじゃなくて、change master toで設定しました。
MySQLのレプリケーションを試してみたので注意点など - (゚∀゚)o彡 sasata299's blog
最後に
例えばスレーブ側はselect専用のMySQLサーバーにして、ネットワーク越しにmysqlにログインして使う場合。
忘れずにスレーブ側の/etc/mysql/my.cnf の bind-addressをコメントアウトするか、クライアントのIPの追加を。
次にselect限定ユーザの追加をする。
追加の仕方
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_id351
例えばこんな感じで
GRANT SELECT ON *.* TO usr_name@192.168.*.* IDENTIFIED BY 'pass';
その後、クライアント側から、MySQLサーバーに接続できるか試してみる(3307はmy.cnfで設定したポート番号)
telnet 192.168.***.*** 3307
以下のようにmysqlのバージョンを含む応答があればOK。
Server version: 5.*.**等。(すぐに切断される)
こうなればもう後は使うだけ。-pの後は半角スペースを空けずに以下のコマンドでログインできる。-hの後はMySQLサーバのIPアドレスを。
mysql -h 192.168.***.*** -P (ポート番号) -u (ユーザ名) -p(スペース空けずにパスワード)