mysql 主从复制

来源:互联网 发布:opengl shader编程 编辑:程序博客网 时间:2024/06/07 00:57

复制(replication)是mysql数据库提供的一种高可用高性能的解决方案,一般用于大型的应用,总体来说

复制的工作原理分为以下3个步骤:

  1. 主数据库(master)把数据更改记录到二进制日志(binlog)中
  2. 从数据库(slave)把主库的二进制日志复制到自己的中继日志(relay log)中
  3. 从库重做中继日志中的日志,把更改应用到自己的数据库上,以达到最终的一致性


从服务器有2个线程,一个是I/O线程,负责读取主服务器的二进制日志,并将其保存为中继日志;另一个
是SQL线程,复制执行中继日志。
-----------------------------------------------------------------------------------------------------------------------------------------
下面是具体配置MYSQL主从同步:
现有两台数据库,其对应的IP为:
主:192.168.1.112
从:192.168.1.115
①、 在主库创建一个复制账号(这里我指定了只允许从库IP进行连接访问):
grant replication slave, replication client on *.* to hpp_slave@'192.168.1.115' identified by '123456';
②、配置主库和从库中的my.cnf
主库配置:
[mysqld]log-bin = /data0/mysql/3306/binlog/binlogserver_id = 112
从库配置:
[mysqld]log-bin = /data0/mysql/3306/binlog/binlogrelay-log = /data0/mysql/3306/relaylog/relayloglog-slave-updates = 1server-id = 115read_only = 1
启动复制
先在主库上查看下当然正在使用的bin log日志文件序号:

然后切换到从库,执行如下语句:
mysql> stop slave;
mysql> change master to master_host='192.168.1.112',    -> master_user='hpp_slave',    -> master_password='123456',    -> master_log_file='binlog.000001',    -> master_log_pos=0;
mysql> start slave;
执行完这句语句后,通过show slave status 来检查复制是否正确执行:


到这里就看到YES,并且Error中无错误,那么主从复制已经实现了,你可以在主库插入,更新一条语句try一下.

原创粉丝点击