mysql主从同步

xiaoxiao2021-02-28  69

mysql主从同步 1.为什么要主从同步? 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一。尤其是在大规模系统中,数据库集群已经成为必备的配置之一。集群的好处主要有:查询负载、数据库复制备份等。其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情。我们这样的分离是把写操作集中在一个节点上,而读操作其其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。 2、怎样配置主从? 首先安装两台mysql数据库,例:我的主数据库是mysql,从数据库是mysql2 配置主服务 1:找到数据库安装位置里的my.ini文件,打开在最后加上以下内容 #这是数据库ID,此ID是唯一的,ID值不能重复,否则会同步出错 server-id=1 #二进制日志文件,此项为必填项,否则不能同步数据;如果不取名字的话, #那么就会以计算机的名字加编号来命名二进制文件; log-bin=mysql-bin #需要同步的数据库,如果还需要同步另外的数据库,那么继续逐条添加, #如果不写,那么默认同步所有的数据库 需要同步多个数据库用逗号分隔 binlog-do-db=test #若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步 #log_bin_trust_function_creators = TRUE #不需要同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的 #binlog-ignore-db=mysql 保存文件后重启mysql服务,链接mysql数据库执行以下sql GRANT REPLICATION SLAVE ON *.*TO 'my_slave'@'127.0.0.1' IDENTIFIED BY '123456'; 执行成功后在执行以下sql,并记录执行结果 show master status; 到现在为止主服务配置好了,接下来配置从服务mysql2 找到mysql2安装位置里的my.ini文件,打开并在文件最后加上以下内容 #这是数据库ID,此ID是唯一的,ID值不能重复,否则会同步出错 server-id=2 #二进制日志文件,此项为必填项,否则不能同步数据;如果不取名字的话,那么就会以计算机的名字加编号来命名二进制文件; log-bin=mysql-bin #需要同步过来的数据库 replicate-do-db=test 重启mysql2的服务,并连接mysql2数据库,执行以下sql change master to master_host='127.0.0.1', master_port=3306, master_user='my_slave', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=106; master_host:master IP master_user:master数据库通过GRANT授权的账号 master_port:master数据库使用的端口号 master_password:master数据库通过GRANT授权的密码 master_log_file:master数据库中通过show master status显示的File名称 master_log_pos:master数据库中通过show master status显示的Position数据 接下来启动从服务即可,执行一下命令 slave start; 到这一步mysql主从同步就配置好了,接下来测试就可以了 注意事项: 1: 需要同步的从数据库需要保证和主数据库初始化表一样 2: 主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间,主从数据不一致。 3: 如果主从的网络断开,从会在网络正常后,批量同步。 4: 如果对从进行修改数据,那么很可能从在执行主的bin-log时出现错误而停止同步,这 个是很危险的操作。所以一般情况下,非常小心的修改从上的数据。
转载请注明原文地址: https://www.6miu.com/read-76046.html

最新回复(0)