Mysql主从同步的配置
准备阶段:
软件----mysql-5.7.17.tar 网上或者官网找
解压之后:
mysql-community-client-5.7.17-1.el7.x86_64.rpm
mysql-community-common-5.7.17-1.el7.x86_64.rpm
mysql-community-devel-5.7.17-1.el7.x86_64.rpm
mysql-community-embedded-5.7.17-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm
mysql-community-libs-5.7.17-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm
mysql-community-server-5.7.17-1.el7.x86_64.rpm
mysql-community-test-5.7.17-1.el7.x86_64.rpm系统:centos7 2台最小安装
yum源正常
可以yum repolist检查下
原理以及概念:
1) MYSQL主从同步是异步复制的过程,整个同步需要开启3线程,master上开启bin-log日志(记录数据库增、删除、修改、更新操作);
2) Slave开启I/O线程来请求master服务器,请求指定bin-log中position点之后的内容;
3) Master端收到请求,Master端I/O线程响应请求,bin-log、position之后内容返给salve;
4) Slave将收到的内容存入relay-log中继日志中,生成master.info(记录master ip、bin-log、position、用户名密码);
5) Slave端SQL实时监测relay-log日志有更新,解析更新的sql内容,解析成sql语句,在salve库中执行;
6) 执行完毕之后,Slave端跟master端数据保持一致
bin-log的用途:
bin-log日志最大的功能记录数据库增、删、改、插入等操作,记录用户操作的SQL语句;
bin-log日志可以用数据增量备份、完整备份;
bin-log还可以主要主从复制+读写分离;
主从深入剖析:
1.Master 数据库只要发生变化,立马记录到Bin log 日志文件中
2.Slave数据库启动一个I/O 线程连接Master数据库,请求Master变化的二进制日志
3.Slave I/O获取到的二进制日志,保存到自己的中继日志文件中。
4.Slave 有一个 SQL 线程定时检查中继日志是否变化,变化那么就更新数据
总结:我们要保证Slave机的SQL和I/O线程是yes
为什么要做主从?
1.实现服务器负载均衡
2.通过复制达到数据的异步备份
3.提高数据库的可用性
4.防止出现主宕机,服务停止或出现问题
开始实验
1.主从步骤一样初级部署
msater(主) slave(从):
tar xf mysql-5.7.17.tar 解压
yum -y install mysql-community* 将mysql的包全部安装
systemctl start mysqld 开启服务
systemctl enable mysqld 开机自启
grep -i password /var/log/mysqld.log 不开启服务是不会生成日志文件的
输出:
2021-12-16T17:33:40.239450Z 1 [Note] A temporary password is generated for root@localhost: !9HIsf?(=oOD 后面这段就是初始密码mysqladmin -uroot -p'!9HIsf?(=oOD' password zzz2021@qqqq.cnmysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. #成功mysql -uroot -pzzz2021@qqqq.cn 进入数据库
2.配置主
主!!!!
vim /etc/my.cnf #配置文件
[mysqld]
server_id=10 #启用binlog日志文件
log_bin=master10 #日志默认存储在数据库目录下
:wq保存退出systemctl restart mysqld #重启服务用户授权
mysql -uroot -p密码 replication slave 让用户有复制权限mysql> grant replication slave on *.* to repluser@"%" identified by "密码";先exit退出,systemctl restart mysqld 重启下
进入数据库
查看日志名信息和偏移量
!!!很重要,查到的给从服务器用
show master status;
mysql> show master status\G
*************************** 1. row ***************************File: master10.000001 #日志名Position: 154 #偏移量Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
3.配置从
从!!!!配置从了,兄弟们 主192.168.242.10 从192.168.242.11
vim /etc/my.cnf[mysqld]
server_id=11
:wq #保存退出systemctl start mysqld #重启
进入数据库
指定主服务器信息
mysql> change master tomaster_host="192.168.242.10",master_user="repluser",master_password="密码”,master_log_file="master10.000001",master_log_pos=154;启动slave进程
mysql> start slave;mysql> show slave status\G 最关键!!!!要出现2个yes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
注意注意
systemctl stop firewalld
setenforce 0 #关闭防火墙,selinux
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 2003Last_IO_Error: error connecting to master 'repluser@192.168.242.10:3306' - retry-time: 60 retries: 1
!!!!!!!!!!!!出现该报错的时候,先检查防火墙和selinux关了没
再 #博主就是因为网关防火墙和selinux排了一个半小时错,各种排查....
mysql> stop slave;
mysql> 重新指定master信息
change master to master_host="ip",
master_user="用户名",
master_password="密码",
master_log_file="日志文件",
master_log_pos=偏移量;
mysql> start slave;
mysql> show slave status\G *************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.242.10Master_User: repluserMaster_Port: 3306Connect_Retry: 60Master_Log_File: master10.000002Read_Master_Log_Pos: 441Relay_Log_File: mysql2-relay-bin.000002Relay_Log_Pos: 319Relay_Master_Log_File: master10.000002Slave_IO_Running: YesSlave_SQL_Running: Yes
#成功
4.验证
进入数据库建库建表
主:
mysql> create database DB1;
mysql> use DB1;
mysql> create table DB1.tt(name char(2));
Query OK, 0 rows affected (0.06 sec)从验证:
mysql> show databases;
mysql> use DB1;
mysql> show tables;
#可以查看到库和表
到这里就成功了
5.常见报错
常见1:
Last_IO_Error: Got fatal error 1236 from masterwhen reading data from binary log: 'Could not find first log file name in binary log index file'在从服务器执行如下操作:mysql> stop slave;在主服务器查看日志名和偏移量host51 show master status;在从服务器 重新指定日志名和偏移量mysql> change master to master_log_file="日志名" , master_log_pos=偏移量;mysql> start slave;mysql> show slave status \G
常见2:
Last_IO_Error: Fatal error:
The slave I/O thread stops because
master and slave have equal MySQL server UUIDs;
these UUIDs must be different for replication to work在从服务器做如下操作:
vim /var/lib/mysql/auto.cnf
[auto]
server-uuid=2dac4865-4770-11ec-9103-6462be92a06e 修改一个字母(字母个数不能少)
:wq
systemctl restart mysqld
常见3:Last_IO_Error: error connecting to master 'repluser@192.168.242.10:3306' - retry-time: 60 retries: 2在从服务器做如下操作:MySQl> stop slave;mysql> change master to master_host="ip" master_user="用户名",master_password="密码" master_log_file="日志名", master_log_pos=偏移量;MySQL> start slave;mysql> show slave status \G
公共解决方案:
把slave角色的服务器恢复为独立的数据库服务器,重新配置为从服务器。
在从服务器执行如下操作:systemctl stop mysqld cd /var/lib/mysql/rm -rf master.inform -rf *-relay-bin.*rm -rf relay-log.infosystemctl start mysqld
最后,如果还是解决不了,或者我的方法解决不了
看这个大佬的
mysql主从同步问题梳理 - 小雨淅淅o0 - 博客园
看这个大佬的
Mysql主从同步的配置相关推荐
- MySql主从同步最小配置
MySql主从同步最小配置 MySql配置文件配置 window: my.ini centos: my.cnf 主数据库配置 #配置数据库的唯一标识符,一般1位主库,从库为ip地址最后一位 serve ...
- mysql主从同步时间设置_MySQL主从同步的配置
mysql主从同步的配置 主要实现单向主从同步模式的实现,原理图如下 主库(master):192.168.221.128 从库(slave):192.168.221.129 配置步骤: 1) ①.编 ...
- 部署mysql主从同步
部署mysql主从同步 一.什么是mysql主从同步 主:正在被客户端访问的数据库服务器,被称作主库服务器. 从:自动同步主库上的数据的数据库服务器,被称作从库服务器. 二.配置mysql主从同步 2 ...
- mysql 主从同步配置
mysql 主从同步配置 转载于:https://www.cnblogs.com/liran123/p/10202534.html
- mysql主从同步配置超详细_MySQL主从同步配置
一. 理论部分 MySQL主从同步 主从同步使得数据可以从一个数据库服务器复制到其他的服务器上.在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制 ...
- ShardingSphere(六) 读写分离之mysql 主从同步配置
概述:本周介绍mysql的主从同步配置,为下一步的Sharding 读写分离提供操作环境.mysql 主从同步主要通过主库开启binlog文件功能,然后从库通过监听binlog中内容进行数据在从库的实 ...
- centos mysql 同步时间_centos:mysql主从同步配置(2018)
centos:mysql主从同步配置(2018) 主服务器:10.1.1.144; 从服务器:10.1.1.163; 配置过程 1.进入主服务器,停止主服务mysql服务: systemctl sto ...
- CentOS下MySQL主从同步配置
(转自)http://apps.hi.baidu.com/share/detail/5882847centos下MySQL主从同步配置 一.环境 主机: master操作系统:centos 5.3 I ...
- MySQL主从同步(一主一从、一主多从、主从从)等结构的概述与配置
前言:前面我们了解了MySQL数据库的基础知识,今天及接下来的五天时间里我会给大家带来MySQL进阶方面的一些学习总结,如有不足,还请大家留言指出:下面我们就开始今天的内容. ** 部署mysql主从 ...
最新文章
- Java多线程中run和start的区别
- python基本数据类型float_Python基本数据类型
- quartz集群分布式(并发)部署解决方案-Spring
- php json转数组不成功,phpjson转数组出错
- 数据库mysql项目实战 一
- 大数据组件监控体系构建
- Android 移动网络接入点名称(APN)
- 5G点亮工业革命前,2021需要持续点亮5G
- WeCube 2.0 全新架构,整装待发
- Python几种开发工具介绍
- 电磁场常见名词整理(不断更新中)
- 微信URL Scheme码+长链接转短链接+短链接通过h5页面跳转到微信小程序
- Python爬虫要学多久
- 一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一个人过桥,南侧桥段和北侧桥段较窄只能通过一个人,桥中央一处宽敞,允许两个人通过或歇息。试用P(wait)V(signal)操作实现
- 医院计算机网络故障演练记录,医院电脑服务器宕机演练脚本、过程及演练总结全套资料.doc...
- 华谊嘉信:依托大数据,构建智能化运营平台!
- 「聊天宝」体验记录,生朋友聊天
- spark和zeppelin实践二:安装spark和zeppelin
- 权限设计及算法(PHPE)
- K8S之Deployment控制器管理应用(十一)
热门文章
- 2017 最新老男孩IT培训 python全栈三期
- Unity Shader菲涅耳反射(Fresnel)
- python❀判断奇偶性
- 阿里及各大企业中台架构详解
- idea搭建android环境(超详细)
- 《Deep Exhaustive Model for Nested Named Entity Recognition》
- 一次关于youtube逆向分析协议
- ceph-deploy Some monitors have still not reached quorum
- 一个云管理平台的架构与功能设计经验谈
- 6、基于51单片机智能台灯坐姿定时+光线+红外感应系统设计(程序+原理图+参考论文+开题报告+任务书等)