mysql主从配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql主从配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3738字,纯文字阅读大概需要6分钟。
内容图文
![mysql主从配置](/upload/InfoBanner/zyjiaocheng/520/8a74d8d89d05495d99eea5173806e552.jpg)
注意:以上配置了权限,我们需要刷新以下权限使用命令:
mysql>flush privileges;
或者直接重启mysql服务:
service mysql restart;
五、查看以下master的状态
其实主要是查看以下master的日志文件名字,以及文件所在的位置,使用命令:
show master status;
可以看到类似如下信息:
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 1516 | | | |
+-------------------+----------+--------------+------------------+-------------------+
File: 日志文件名称
Position: 日志所在位置
六、开启slave的二进制日志
进入slave的服务器
1)编辑mysql的配置文件,使用命令:
vim /etc/my.cnf
2)添加二进制日志配置,开启二进制(relay-bin只是日志文件名称,可以自己指定)
log-bin=relay-bin
server-id=2
注意:server-id是要指定的,不然会报错,每一台指定一个唯一标识符
七、将slave指向master
mysql>CHANGE MASTER TO >MASTER_HOST=‘master所在服务器的IP‘, >MASTER_USER=‘master授权的账号‘, >MASTER_PASSWORD=‘master授权的密码‘, >MASTER_LOG_FILE=‘master的日志文件名‘, >MASTER_LOG_POS=master的日志所在位置;
八、开始主从复制
在slave上执行
mysql>start slave;
我们可以查看slave的运行状态:
show slave status\G;
可以看到类似如下内容:
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: master的IP地址 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.000001 Read_Master_Log_Pos: 1516 Relay_Log_File: slave-bin.000004 Relay_Log_Pos: 1117 Relay_Master_Log_File: master-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes ......
注意:
Slave_IO_Running: YES 表示slave的日志读取线程开启
Slave_SQL_Running: YES 表示SQL执行线程开启
如果有主从复制有错误信息其实也可以看到
九、测试
以上我们就将主从复制功能设置完毕了,我们可以通过在master里面创建数据库,或者表,插入数据等来测试一下
十、注意点
1)开启了主从复制,slave库如果写入数据的话,可能导致数据回滚从而主从复制线程中断,可以通过以下方式解决:
#通常情况下,您使用了mysql主从集群,应该配置从库为只读,一般如下配置:
#设置数据库为只读,但是对super用户(root)是无效
mysql> set global read_only=1; #1是只读,0是读写
#同时对外创建一个只读的用户
CREATE USER ‘账号名称‘@‘host地址‘ IDENTIFIED BY ‘密码‘;
GRANT SELECT ON databasename.* TO ‘账号名称‘@‘host地址‘;
#切记不要设定全局锁“flush tables with read lock;”,对应的解锁模式命令为:“unlock tables;”
#这样虽然可以限制super用户的只读,但是主从同步就无法工作了。
#如果因为种种确实没有设置从库只读,为了使从库继续工作,解决方案如下:
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
2)如果要停止slave的复制可以使用命令:
mysql>stop slave;
3)由于主从复制是基于I/O的日志,所以会存在一定延时,如果对数据一致性要求非常高的话,简单的主从复制在实际环境中会存在问题 :
1、因为SQLThread和IOThread是默认单线程,当主机的tps(每秒事务处理数)高于从机的Thread所能承受范围,则会出现从机复制延时
解决方案: 将thread改成多线程模式 MySQL5.6改表,MySQL5.7改GTID
2、网络延时
解决方案: 主和从在一个网内
3、IO延时
slave server硬件升级 【判断延时:】
①show slave status中Seconds_Behind_Master=0则不延时
②建表加时间戳(timestamp),看时间差 【若生产上发生延迟比较的高的情况时,可以使用临时解决方案。代码中应该可以实现动态切换:】 利用分库分表中间件 Mycat、 sharding JDBC
强制读取主库
mysql主从配置
标签:tle 信息 img ica with 标识符 server-id gif 用户
本文系统来源:https://www.cnblogs.com/zomicc/p/12512608.html
内容总结
以上是互联网集市为您收集整理的mysql主从配置全部内容,希望文章能够帮你解决mysql主从配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。