レプリケーションとは、あるデータベースから他のデータベースに複製を作ることです。
MySQL 5.1.30
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY '<password>';
マスタサーバで更新ログ(バイナリログとも言う)を有効にします。~
my.cnf ファイルに以下の記述があるか確認して下さい。
[mysqld] log-bin server-id=1
※server-id は、1以上の整数であれば何でも良いです。
mysql> FLUSH TABLES WITH READ LOCK;
# cd /home/mysql # tar zcvf data.tar.gz data # scp data.tar.gz [スレーブサーバ]
実行したら、画面に出力された「File」と「Position」カラムの内容をメモしておきます。
これは、現時点での更新ログファイル名とそのオフセットです。
この後スレーブサーバ上でレプリケーションを有効にする際に必要になります。
mysql> SHOW MASTER STATUS;
mysql> UNLOCK TABLES;
確認コマンド
mysql> show global variables like 'expire_logs_days';
<color red>デフォルトの0は削除しないの意味</red>
my.cnfに下記を書いておけば、14日で削除される。
set-variable = expire_logs_days=14
# cd /home/mysql # tar zxvf data.tar.gz
server-id = 2 master-host = 172.16.8.53 master-port = 3306 master-user = slave master-password = xxslave
mysql> STOP SLAVE; mysql> CHANGE MASTER TO MASTER_HOST='<master host name>', MASTER_USER='<replication user name>', MASTER_PASSWORD='<replication password>', MASTER_LOG_FILE='<recorded log file name>', MASTER_LOG_POS=<recorded log offset>; mysql> START SLAVE;
mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.16.8.53 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000007 Read_Master_Log_Pos: 19072 Relay_Log_File: localhost-relay-bin.000002 Relay_Log_Pos: 8504 Relay_Master_Log_File: mysql-bin.000007 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 19072 Relay_Log_Space: 8663 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 1 row in set (0.00 sec) ERROR: No query specified