○ 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