mysql 主从 同步原理及配置一、在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来具有相应的优点:(1) 数据分布 (Data distribution )(2) 负载平衡(load balancing)(3) 备份(Backups)(4) 高可用性和容错行 High availability and failover
二、mysql 数据库同步的实现原理:(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);(2) slave将master的binary log events拷贝到它的中继日志(relay log);(3) slave重做中继日志中的事件,将改变反映它自己的数据。
image
三、mysql主从同步复制的实现配置过程1、 条件两台服务器分别为A:192.168.1.230 【master】B: 192.168.1.122 【slave】2、步骤1)、 在masert 里 mysql数据库建立wei slave用来取数据库的账号密码账号为: net密码为: 123456权限: 赋予需要同步的数据相应权限2)、 把需要同步的数据库 从 主库拷贝到 从服务器里头建立(意思就是保证同步的数据库一致)3)、主库上面做如下操作(window 打开 my.ini 文件 liunx 系统 my.conf 数据库配置文件)A. 在mysqld 下添加以下代码
[mysqld] port=3306 server-id=1 # master端ID号 log-bin=log #日志路径及文件名 binlog-do-db=test #需要同步的数据库 binlog-ignore-db=mysql #不需要同步的数据库 B. 在master上位slave添加一个同步账号 grant replication slave on *.* to 'net'@'192.168.1.122' identified by '123456'; C. 重启mysql服务 运行 show master status File Position(同步位置) Binlog_Do_DB(同步库) Binlog_Ignore_DB(不需要同步的库) log.000001 424 test mysql 4)、从服务器上 做如下操作 slave 拷贝如下代码到 my.ini 文件 mysqld 下面 server-id=2 master-host=192.168.1.230 master-user= net master-password= 123456 master-port= 3306 master-connect-retry=60 replicate-do-db=test #同步的数据库 replicate-ignore-db=mysql #被忽略的数据库 B.在mysql里头执行 stop slave change master to master_log_file='log.000001', master_log_pos=424 改变和添加相应的配置项 注意这个地方就是主库的文件 和 位置 c. start slave; 开启同步 让从库去主库里头去数据 D. show slave status 查看同步配置项目状态到此大功告成,可以修改或者插入 主库test里头的数据从库就会有相关的实时变化
四、附加 python代码简单实现读写库分离import MySqldb
参考:MySQLhttp://www.cnblogs.com/echosong/p/3540783.htmlSQL Serverhttp://www.cnblogs.com/webapi/p/5283866.html
转载于:https://www.cnblogs.com/Lulus/p/7874362.html
相关资源:oracle 主从同步