关于mysql配置主从同步,个人的见解与实现方法

来源:互联网 发布:程序员面试官问题 编辑:程序博客网 时间:2024/06/04 19:41

首先声明一下,我这里是单指两个mysql服务器之间如何配置主从同步。并没有在代码层去实现。

操作系统为linux


我们假定

主库IP为:192.168.82.228

从库IP为:192.168.82.196


主库操作:

打开mysql 配置文件my.cnf

在[mysqld]标识下配置
server-id=1 标记server-id
log-bin=master-bin 打开master二进制日志   
log-bin-index=master-bin.index 打开master二进制日志索引
配置完成之后重启mysql
service mysqld restart


show master status;进行查看master配置情况
把看到的file,position进行记录,后面配置“从”要用到
假设我们记录的file是master-bin.000001
     position是624240


创建repl用户并赋予他权限
create user repl;
grant replication slave on *.* to 'repl'@'192.168.82.196' identified by 'root';
  账号    地址                          密码
刷新权限
flush privileges;


从库操作:
vim /etc/my.cnf打开my.cnf
在[mysqld]标识下配置


这里配置里面可能还有其他的配置server-id。如果有的话就删除
server-id=2 这里不能和上面的id一样
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
配置完成重启。另一种重启方式
/etc/init.d/mysql stop
/etc/init.d/mysql start


change master to master_host='192.168.82.228',master_port=3306,master_user='repl',master_password='root'
,master_log_file='master-bin.000001',master_log_pos=0;
这里写0是为了覆盖前面624240的数据,方便同步。写624240也可以
开启主从跟踪
start slave;


查看“从”状态
show slave status \G;


如果没报错信息,并且Slave_IO_Running:yes
   Slave_SQL_Running:yes
这两个上面都显示了正确数据
这两个一定要为yes。
就算成功了



测试:


在主库里创建一个数据库:zyx
create database zyx;
从库里没有这个zyx,但是此时跟着创建成功,即测试成功。
也可以删除试一试能否一致。


备注:别在从库写数据,因为这样会造成主从库不一致,进而引发冲突。



原创粉丝点击