MySQLレプリケーション(二)Master-Slaveレプリケーション実践
5595 ワード
1.準備
まず2台のマシンを用意し、それぞれmysqlを取り付けます
私のここのバージョンは5.1.73で、mysqlデータベースのインストールは参考してください:http://www.cnblogs.com/tangyanbo/p/4289753.html
linuxシステムはcentos
マシンは次のとおりです.
Master: 192.168.1.227
Slave:192.168.1.225
シーン:masterとslaveは作成したばかりのデータベースです.つまり、データが一致するシーンの下です.
2.レプリケーションの構成
大まかな手順は次のとおりです.
1)サーバごとにレプリケーションアカウントを作成する
2)MasterとSlaveの構成
3)Slave接続Masterコピー開始
2.1 Masterでのレプリケーションアカウントの作成
マスターにアカウントslave、パスワードslaveを作成し、REPLICATION SLAVE権限を付与します.
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.225' IDENTIFIED BY 'slave';
2.2マスターの構成
# vi/etc/my.cnf
mysqldの下に次の構成があることを確認します.
server_id:slaveのserver_とは設定できない必要があります.idは同じ
log_bin:バイナリログを開く
保存して終了し、masterを再起動
service mysqld restart
sqlコンソールに入り、コマンドSHOW MASTER STATUSまたはshow master statusGを実行
2.3 Slaveの構成
Slaveマシンで
# vi/etc/my.cnf
server_id:slaveのserver_とは設定できない必要があります.idは同じ
log_bin:バイナリログを開く
relay_log構成中継ログ、log_slave_updatesはslaveがコピーイベントを自分のバイナリログに書き込むことを示します(後でその用途が表示されます)
slaveの保存と再起動
2.4レプリケーションの開始
slaveをmasterに接続する
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.227',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;
赤い部分に注意
MASTER_LOG_FILE対応マスターファイル
MASTER_LOG_POS対応マスターのPosition
実行コマンド:mysql>show slave statusG
Slave_IO_State, Slave_IO_RunningとSlave_SQL_Runningはslaveがレプリケーションプロセスを開始していないことを示しています.ログの場所は0ではなく4です.これは、0がログファイルの開始位置であり、ログの場所ではないためです.実際、MySQLが知っている最初のイベントの場所は4です.
コピーを開始し、コマンドを実行します:mysql>START SLAVE;
Slave_IO_RunningとSlave_SQL_Runningはすべてyesで、起動に成功したことを示します
masterでsql操作を実行する
slaveで表示
コピーが成功したことを示します.
まず2台のマシンを用意し、それぞれmysqlを取り付けます
私のここのバージョンは5.1.73で、mysqlデータベースのインストールは参考してください:http://www.cnblogs.com/tangyanbo/p/4289753.html
linuxシステムはcentos
マシンは次のとおりです.
Master: 192.168.1.227
Slave:192.168.1.225
シーン:masterとslaveは作成したばかりのデータベースです.つまり、データが一致するシーンの下です.
2.レプリケーションの構成
大まかな手順は次のとおりです.
1)サーバごとにレプリケーションアカウントを作成する
2)MasterとSlaveの構成
3)Slave接続Masterコピー開始
2.1 Masterでのレプリケーションアカウントの作成
マスターにアカウントslave、パスワードslaveを作成し、REPLICATION SLAVE権限を付与します.
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.225' IDENTIFIED BY 'slave';
2.2マスターの構成
# vi/etc/my.cnf
mysqldの下に次の構成があることを確認します.
[mysqld]
port = 3306
server-id = 1
log_bin = mysql-bin
socket = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
binlog_format=ROW
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
server_id:slaveのserver_とは設定できない必要があります.idは同じ
log_bin:バイナリログを開く
保存して終了し、masterを再起動
service mysqld restart
sqlコンソールに入り、コマンドSHOW MASTER STATUSまたはshow master statusGを実行
2.3 Slaveの構成
Slaveマシンで
# vi/etc/my.cnf
[mysqld]
port = 3306
server-id = 2
log_bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
server_id:slaveのserver_とは設定できない必要があります.idは同じ
log_bin:バイナリログを開く
relay_log構成中継ログ、log_slave_updatesはslaveがコピーイベントを自分のバイナリログに書き込むことを示します(後でその用途が表示されます)
slaveの保存と再起動
2.4レプリケーションの開始
slaveをmasterに接続する
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.227',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;
赤い部分に注意
MASTER_LOG_FILE対応マスターファイル
MASTER_LOG_POS対応マスターのPosition
実行コマンド:mysql>show slave statusG
Slave_IO_State, Slave_IO_RunningとSlave_SQL_Runningはslaveがレプリケーションプロセスを開始していないことを示しています.ログの場所は0ではなく4です.これは、0がログファイルの開始位置であり、ログの場所ではないためです.実際、MySQLが知っている最初のイベントの場所は4です.
コピーを開始し、コマンドを実行します:mysql>START SLAVE;
Slave_IO_RunningとSlave_SQL_Runningはすべてyesで、起動に成功したことを示します
masterでsql操作を実行する
mysql>use test;
mysql>create table test1(id int,name varchar(20));
mysql>insert into test1 values(1,'2');
slaveで表示
コピーが成功したことを示します.