2016
05.21

mysql设置主从复制

准备2台服务器,服务器1作为主数据库,服务器2作为从数据库。

1.修改主库的配置
这里使用的是ubuntu下的MYSQL,版本为5.6.30,使用apt-get方式安装。
1)首先修改/etc/mysql/conf.d/mysql.cnf
[mysqld]
bind-address = 0.0.0.0
log-bin=mysql-bin
server-id=1
2)然后修改/etc/mysql/mysql.conf.d/mysqld.cnf。
bind-address = 0.0.0.0
注意:将上面2个文件的bind-address都设置成0.0.0.0,是为了让从库能够连接主库。
3)重启mysql使以上修改生效: service mysql restart

2.在主数据库创建用户
CREATE USER ‘repl’@’10.99.%.%’ IDENTIFIED BY ‘slavepassword’;
GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’10.99.%.%’;
以上ip地址要根据实际情况设置。

3.获取主数据库复制文件名称和复制点位置
首先给数据库上锁,防止数据写入:FLUSH TABLES WITH READ LOCK;
获取主库状态:SHOW MASTER STATUS;
得到File和Potision2个字段的值:
+——————+———-+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000002 | 120 | | | |
+——————+———-+————–+——————+——————-+
记下2个值,然后就可以解锁了:UNLOCK TABLES;

4.配置从数据库
1)编辑从数据库的/etc/mysql/conf.d/mysql.cnf
[mysqld]
server-id=2
注意:如果只想复制某1个库,还要添加以下配置项
replicate-wild-do-table=dbname.%
这里的dbname是想复制的主库的某一个数据库的名字。

2)重启mysql: service mysql restart

3)设置复制配置:
CHANGE MASTER TO
MASTER_HOST=’10.99.0.10′,
MASTER_USER=’repl’,
MASTER_PASSWORD=’slavepassword’,
MASTER_LOG_FILE=’mysql-bin.000002′,
MASTER_LOG_POS=120;
这里MASTER_HOST是主库的ip地址,要根据实际情况指定。
4)启动复制:START SLAVE;

5.试验
主库上新建一个数据库: create database hello
稍等一会儿,在从库上会看到多了hello数据库,说明以上配置成功。
可以用以下命令在从库上查看复制的状态:show slave status;

回复功能关闭


Hit Counter by http://yizhantech.com/