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(スペース空けずにパスワード)