4 测试
(1
)在直播带货系统源码主服务器上登陆
mysql
,且进入
test
数据库,创建
test
表,且插入一条数据
提示:这里最好用数据库管理工具(如nacicat
)来操作。
#
创建
tb_test
表
create table tb_test(ID varchar(36) primary key comment '
主键
ID',MEMO varchar(500) not null comment '
信息
');
#
插入一条数据
insert into tb_test(ID,MEMO) values('1','one test');
#
提交
commit;
(2
)在直播带货系统源码从服务器上登陆
mysql
,且进入
test
数据库
你会发现直播带货系统源码从数据库中,也出现了tb_test
表,且表中还有
one test
数据存在,证明同步数据成功。
5 解决错误
若在直播带货系统源码主从同步的过程中,出现其中一条语句同步失败报错了,则后面的语句也肯定不能同步成功了。例如,主库有一条数据,而从库并没有这一条数据,然而,在主库执行了删除这一条数据的操作,那么从库没有这么一条数据就肯定删除不了,从而报错了。在此时的从数据库的数据同步就失败了,因此后面的同步语句就无法继续执行。 这里提供的解决方法有两种: (1 )在直播带货系统源码从数据库中,使用 SET 全局 sql_slave_skip_counter 来跳过事件,跳过这一个错误,然后执行从下一个事件组开始。 # 在从数据库上操作 mysql > stop slave; mysql > set global sql_slave_skip_counter=1; mysql > start slave; (2 )在直播带货系统源码从数据库中,重新连上主数据库。这种操作会直接跳过中间的那些同步语句,可能会导致一些数据未同步过去的问题,但这种操作也是最后的绝招。最好就是令从数据库与主数据库的数据结构和数据都一致了之后,再来恢复主从同步的操作。 # 在从数据库上操作 mysql > stop slave; mysql> change master to master_host='192.168.17.130',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master-bin.000001',master_log_pos=2050; mysql > start slave; # 备注 #master_log_file 和 master_log_pos 可能会不同,需要在主数据库中 show master status 来查看
6 总结
至此,mysql 数据库的主从同步就完成了,至于读写分离,我们可以通过程序来实现,这里简单讲解一下实现思想。 我们可以在直播带货系统源码主服务器创建一个数据库用户(出于安全,根据需求给予相应的权限)主要用于写操作,在程序中通过这一用户连接主数据库的只用于写操作而不用读操作。 在直播带货系统源码从服务器上创建一个数据库用户(出于安全,只给予读select 的权限)主要用于读操作,在程序中通过这一用户连接从数据库即可。 当然,也可以找一个组件来完成MYSQL 的代理,实现 SQL 语句的路由,这样就不需要我们在直播带货系统源码上关注哪个数据库是写,哪个数据库是读的了。 ———————————————— 声明:本文由云豹科技转发自CSDN 【 叶梦_ 】,如有侵权请联系作者删除 原文链接:https://blog.csdn.net/qq_15092079/article/details/81672920
