mysql实现简单的基于日志点的主从复制

2017-01-09 07:55:31来源:作者:人点击

以此文记录一下mysql实现基于日志点的主从搭建,若有不足之处,欢迎大家指出。
实现步骤如下:
修改主服务器上的数据配置文件【my.cnf】

bin_log = mysql-bin//开启binlog
server_id = xxx//值唯一
binlog_format=row//推荐使用行的方式记录日志

2. 修改从服务器数据库配置文件【my.cnf】
bin_log = mysql-bin//开启binlog
server_id = xxx //值唯一
relay_log = relay-bin //中继日志的名字
read_only = on//只读 推荐开启

3.修改完配置文件后都需要重启mysql数据库

4、在主服务器上创建复制帐号
create user 'repl'@'IP段' identified by 'password'

创建帐号为 repl,并设置可连接的IP段与密码
grant replication slave on *.* to 'repl'@'IP段'

为创建的repl帐号授予 replication slave权限,




5.备份主数据库的数据,此处用的mysqldump方式

mysqldump --single-transaction --master-data --triggers --routines -uroot -p --databases test shop >> /zhang/database.sql

--master-data : 将二进制日志的位置和文件名写入到输出中 【这里最好加上】

--databases : 指定需要导出的数据库,这里最好指定数据库

-u :指定连接的用户名
-p :指定密码
--routines : 导出储存储过程
--triggers:导出事务

6.将导出的SQL文件放到从服务器上导入,
可以用scp方式,也可以用sz+rz的方式, 这里选择的是scp方式:
scp /zhang/database.sql zhang@192.168.131.138:/zhang 【将SQL文件传到从服务器的/zhang目录】

7. 在从服务器上导入主服务器上的SQL
mysql -uroot -p < /zhang/database.sql

8. 导入成功后,登录从服务器执行change master命令
change master to master_host='192.168.131.139', master_user='repl', MASTER_LOG_FILE='mysql-bin.000016', MASTER_LOG_POS=1180 , master_password='123456';


master_host:主服务器的IP
master_user :连接主服务器的用户,即刚才在主服务器创建的用户名
master_password :连接的密码,
MASTER_LOG_POS :复制的开始位置

MASTER_LOG_FILE :开始复制的日志文件




这里重点是确定 MASTER_LOG_POS 与 MASTER_LOG_FILE的参数,可以查看刚才在主服务器导出的
SQL文件查看这2个参数。
more /zhang/database.sql





9.关闭主服务器和从服务器的IP TABLES 防火墙。如果不关闭可能会有 Slave_IO_Running=no的情况
iptables -F

10.在从服务器启动 slave
start slave;//启动slave
stop slave; //暂停slave

show slave status //查看slave的状态,【如果Slave_IO_Running,Slave_SQL_Running都为yes则表示主从搭建成功】



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台