master 主数据库配置
配置my.cnf,并重启 master 数据库
# 唯一标志ID
server-id=1
# master 数据操作记录的二进制日志,提供给 slave 读取
log-bin=/var/lib/mysql/log/bin
# master 指定同步的数据库
binlog_do_db=test
重启mysql
vagrant@node1:~$ service mysql restart
在 master 上创建 slave 用户,提供给 slave 登录来同步数据
mysql>create user slave_server;
//slave_server SLAVE权限,除此之外没有必要添加不必要的权限,密码为 slave_passwd。
// 这里%是通配符,表示10.123.189.0-10.123.189.255的从服务器都能以 slave_server 用户登陆主服务器。当然你也可以指定固定Ip。
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave_server'@'10.123.189.%' IDENTIFIED BY 'slave_passwd';
导出 master 中 test 数据库的原始数据
暂时把 test 表锁住,保证导出的数据一致性
mysql>use test;
mysql>FLUSH TABLES WITH READ LOCK;
执行数据导出
vagrant@node1:~$ mysqldump -u root -p --opt test > ~/test.sql
查看 master 当前数据操作记录的文件和起始点,后面配置 slave 会用到这些信息
mysql> show master status;
+------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------+----------+--------------+------------------+
| bin.000001 | 107 | test | |
+------------+----------+--------------+------------------+
1 row in set (0.00 sec)
释放 test 表格了
mysql>use test;
mysql>UNLOCK TABLES;
slave 从数据库配置
导入 master 数据库的原始数据到 slave 数据库
mysql -u root -p test < ~/test.sql
配置my.cnf,并重启 slave 数据库
# 唯一标志ID
server-id=2
# slave 获取 master 数据的记录
relay-log=/var/lib/mysql/relay/log
重启 mysql
service mysql restart
slave 指定 master 的同步信息
// 包括 master 的host,port,user,password
// 以及 master 数据操作记录的二进制文件名log_file和起始点log_pos,对应master上面show master status内容的File和Position
mysql> CHANGE MASTER TO MASTER_HOST='10.123.177.206',MASTER_USER='slave_server', MASTER_PASSWORD='slave_passwd', MASTER_LOG_POS=3306,master_log_file='bin.000001', master_log_pos=107;
Query OK, 0 rows affected (0.05 sec)
开启 slave 同步,并查看状态,如果有Waiting for master to send event表示成功了
mysql> START SLAVE;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status;
+----------------------------------+----------------+--------------+-------------+---------------+-----------------+---------------------+
| Slave_IO_State | Master_Host | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos |
+----------------------------------+----------------+--------------+-------------+---------------+-----------------+---------------------+
| Waiting for master to send event | 10.123.177.206 | slave_server | 3306 | 60 | bin.000001 | 107 |
+----------------------------------+----------------+--------------+-------------+---------------+-----------------+---------------------+
1 row in set (0.00 sec)