mysql:mysql_replication_build
Mysqlレプリケーション構築
○ Mysql
◆ インストール
# yum -y install mysql-server
◆ Master
# vi /etc/my.cnf
[mysqld] log-bin=mysql-bin server-id=1
# /etc/rc.d/init.d/mysqld start # mysql -u root mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.80.0/255.255.255.0' IDENTIFIED BY 'slavepass'; mysql> FLUSH PRIVILEGES;
◆ Slave
# vi /etc/my.cnf
[mysqld] server-id=2
# /etc/rc.d/init.d/mysqld start # mysql -u root mysql> GRANT USAGE ON *.* TO 'repl'@'localhost' IDENTIFIED BY 'slavepass'; mysql> GRANT ALL ON *.* TO 'repl'@'localhost'; mysql> FLUSH PRIVILEGES;
◆ Master
mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 327 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
● 別のターミナルで以下の2コマンド実行
# mysqldump -u root -p --all-databases --lock-all-tables > dbdump.d Enter password: mysql> UNLOCK TABLES;
◆ Slave
# mysql -uroot -p < dbdump.d # mysql -u root mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.80.97', -> MASTER_USER='repl', -> MASTER_PASSWORD='slavepass', -> MASTER_LOG_FILE='mysql-bin.000003', -> MASTER_LOG_POS=327; mysql> START SLAVE;
◆◆◆ 以下、サンプルでの確認 ◆◆◆
◆ Master
# mysql -u root mysql> create database user_db; mysql> use user_db; mysql> create table jpzipcode( -> oldpost text, -> newpost text not null, -> pref text, -> area text, -> addr text not null -> ); mysql> show fields from jpzipcode; +---------+------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+------+------+-----+---------+-------+ | oldpost | text | YES | | NULL | | | newpost | text | NO | | NULL | | | pref | text | YES | | NULL | | | area | text | YES | | NULL | | | addr | text | NO | | NULL | | +---------+------+------+-----+---------+-------+ 5 rows in set (0.00 sec) mysql> INSERT INTO jpzipcode -> (oldpost,newpost,pref,area,addr) -> VALUES('154','154-0002','東京都','世田谷区','下馬'); mysql> INSERT INTO jpzipcode -> (oldpost,newpost,pref,area,addr) -> VALUES('468','468-0039','愛知県','名古屋市天白区','西入町'); mysql> select * from jpzipcode; +---------+----------+-----------+-----------------------+-----------+ | oldpost | newpost | pref | area | addr | +---------+----------+-----------+-----------------------+-----------+ | 154 | 154-0002 | 東京都 | 世田谷区 | 下馬 | | 468 | 468-0039 | 愛知県 | 名古屋市天白区 | 西入町 | +---------+----------+-----------+-----------------------+-----------+ 2 rows in set (0.00 sec)
◆ Slave
# mysql -u root mysql> use user_db; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select * from jpzipcode; +---------+----------+-----------+-----------------------+-----------+ | oldpost | newpost | pref | area | addr | +---------+----------+-----------+-----------------------+-----------+ | 154 | 154-0002 | 東京都 | 世田谷区 | 下馬 | | 468 | 468-0039 | 愛知県 | 名古屋市天白区 | 西入町 | +---------+----------+-----------+-----------------------+-----------+ 2 rows in set (0.00 sec) mysql>
◆ 参考
http://open-groove.net/mysql/shell-and-mysql/
サンプルコマンド
/usr/bin/mysql -e 'show slave status \G' | grep -i Last_Error
mysql/mysql_replication_build.txt · 最終更新: 2014/03/26 07:57 by clownclown