怎样做问卷网站,python 仿wordpress,网站未建设的情况说明书,武平县天恒建设投资集团公司网站目录 七、MySql主从复制启动主从复制#xff1a;原理#xff1a;实现#xff1a;1、创建节点2、创建数据库3、主从配置1、主节点2、从节点 4、测试#xff1a;5、问题#xff1a;1、uuid修改2、service_id3、读写不同步方法1#xff1a;方法2#xff1a; 七、MySql主从复… 目录 七、MySql主从复制启动主从复制原理实现1、创建节点2、创建数据库3、主从配置1、主节点2、从节点 4、测试5、问题1、uuid修改2、service_id3、读写不同步方法1方法2 七、MySql主从复制
启动主从复制
1、打开虚拟机 150主master、 152从slave
2、 mysql -uroot -p123456 进入主和从数据库
服务器mysql -u root -p出现错误-bash: mysql: command not found 输入alias mysql/usr/local/mysql/bin/mysql
3、查看从数据库状态是否正确是否有两个yes没有两个yes就是没成功
启动从服务start slave;查看状态: show slave status \G
没成功就进行修改查看【七-5-3读写不同步解决】
4、启动mycat /usr/local/mycat/bin/mycat start
重启mycat/usr/local/mycat/bin/mycat restart
5、查看mycat日志 tail -f -n 50 /usr/local/mycat/logs/wrapper.log
重启mysqlservice mysqld restart
原理
主数据库用于写数据、修改数据从数据库用于读数据
要控制写入的数据都到主数据库就需要用到 mycat中间件进行读写分离 实现
1、创建节点
主节点master
先克隆一个 192.168.209.150 的虚拟机作为mysql的master主节点
创建的步骤如截图中所示截图不是克隆mysql的是之前的。 从节点slave
跟主节点一样ip 设置为192.168.209.152
2、创建数据库
主节点数据库 从节点数据库**
和主节点数据库一样进行创建连接
3、主从配置
1在主服务器 vi /etc/my.cnf 中添加//给数据库服务的唯一标识一般为大家设置服务器Ip的末尾号比如192.168.209.150 取150server-id150log-binmaster-binlog-bin-indexmaster-bin.index
2启动主服务器就是启动mysql
3执行show master status; 查看主服务器状态
4复制当前主服务器中的数据库内容
5在从服务器中创建主服务器数据库
6在从服务器vi /etc/my.cnf中添加server-id152relay-log-indexslave-relay-bin.indexrelay-logslave-relay-bin
7启动从服务器就是启动mysql
8在从服务中执行
解释change master to master_host192.168.209.150, //Master 服务器Ipmaster_userroot, #主节点的账号master_password123456, #主节点的密码master_log_filemaster-bin.000001,//Master服务器产生的日志master_log_pos156; #主节点的position在mysql输入这些命令change master to master_host192.168.209.150,master_userroot,master_password123456,master_log_filemaster-bin.000001,master_log_pos156;9启动从服务start slave;查看状态: show slave status \G10在主服务器中添加一条数据查看在从服务器中是否同步成功
//注意克隆服务器需要
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf_bak
然后再重新启动mysql1、主节点
修改配置文件 登录mysql
服务器mysql -u root -p出现错误-bash: mysql: command not found 输入alias mysql/usr/local/mysql/bin/mysql 再重复mysql -u root -p输入mysql口令即可 查看主服务器状态 2、从节点
克隆服务器作为从节点然后修改配置文件 重新启动服务器 在从节点的数据库中修改配置 查看从节点的状态这里出了个 主从数据库uuid因为拷贝而一样的问题修改步骤往下看 4、测试
1、主数据库创建数据库看从数据库会不会自动创建 2、在主数据库中创建一张表看从数据库是否能同步会
3、在从数据库中创建一张表看主数据库会不会同步不会 4、在主数据库的表中修改数据看从数据库是否会同步会
5、在从数据库的表中修改数据看主数据库是否会同步不会 5、问题
从节点出现这个问题 1、uuid修改
1、查看uuid是否一致两个服务器的mysql的uuid不能一样的
查询这个 auto.cnf 文件的地址因为虚拟机是拷贝的所以uuid可能会一一致需要修改。 从数据库的uuid随便改个字母不跟主数据库一样就可以了 重启一下systemctl restart mysqld
重新登录
mysql -uroot -p 登录mysql
stop slave; 停止链路
start slave; 启动链路
show slave status \G; 查看链路 成功变成两个yes
不过下面有显示一个错误先不理。 原因只是查看的时候 \G 多了个 ; 分号而已去掉就好了。 2、service_id
这个是查看service_id的影响不大。上面的uuid改好就可以了
2、查看service_id 是否因为两个虚拟机是拷贝的而出现id一致的情况
在数据库里面输入命令查看show variables like ‘server_id’;
发现主节点是 150 从节点是1这个应该是我们设置的152要重启mysql看看并没有重复 重启数据库这个value的值变成 152 才是正确的
start slave 后 变成两个no了 重新 reset slave 设置下就可以了 现在又回到刚刚一个yes的问题两个sql的uuid是一样的修改成不一样的就好了
防火墙要关的才能同步数据
3、读写不同步
方法1
原因主从配置的position不一致时间太久导致主数据库的position变了应该是这个原因
主节点的position变了
要在从节点修改下 修改
stop slave; 不知道用不用先停掉再改现在我是先停掉了。 1、mysql -uroot -p 登录mysql
2、stop slave; 停止链路
3、修改master_log_posxxxxxx改这个;把下面整行都重新设置
在mysql输入这些命令
change master to master_host192.168.209.150,master_userroot,master_password123456,master_log_filemaster-bin.000001,master_log_pos156;4、start slave; 启动链路
5、show slave status \G; 查看链路
又好了。 但是只要测试一次下一次又不行了。
方法2
这个是百度其他办法也是改后只成功一次
mysql stop slave ; mysql SET GLOBAL SQL_SLAVE_SKIP_COUNTER 1; mysql start slave ; 暂时先不理