准备阶段:

软件----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主从同步的配置相关推荐

  1. MySql主从同步最小配置

    MySql主从同步最小配置 MySql配置文件配置 window: my.ini centos: my.cnf 主数据库配置 #配置数据库的唯一标识符,一般1位主库,从库为ip地址最后一位 serve ...

  2. mysql主从同步时间设置_MySQL主从同步的配置

    mysql主从同步的配置 主要实现单向主从同步模式的实现,原理图如下 主库(master):192.168.221.128 从库(slave):192.168.221.129 配置步骤: 1) ①.编 ...

  3. 部署mysql主从同步

    部署mysql主从同步 一.什么是mysql主从同步 主:正在被客户端访问的数据库服务器,被称作主库服务器. 从:自动同步主库上的数据的数据库服务器,被称作从库服务器. 二.配置mysql主从同步 2 ...

  4. mysql 主从同步配置

    mysql 主从同步配置 转载于:https://www.cnblogs.com/liran123/p/10202534.html

  5. mysql主从同步配置超详细_MySQL主从同步配置

    一. 理论部分 MySQL主从同步 主从同步使得数据可以从一个数据库服务器复制到其他的服务器上.在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制 ...

  6. ShardingSphere(六) 读写分离之mysql 主从同步配置

    概述:本周介绍mysql的主从同步配置,为下一步的Sharding 读写分离提供操作环境.mysql 主从同步主要通过主库开启binlog文件功能,然后从库通过监听binlog中内容进行数据在从库的实 ...

  7. centos mysql 同步时间_centos:mysql主从同步配置(2018)

    centos:mysql主从同步配置(2018) 主服务器:10.1.1.144; 从服务器:10.1.1.163; 配置过程 1.进入主服务器,停止主服务mysql服务: systemctl sto ...

  8. CentOS下MySQL主从同步配置

    (转自)http://apps.hi.baidu.com/share/detail/5882847centos下MySQL主从同步配置 一.环境 主机: master操作系统:centos 5.3 I ...

  9. MySQL主从同步(一主一从、一主多从、主从从)等结构的概述与配置

    前言:前面我们了解了MySQL数据库的基础知识,今天及接下来的五天时间里我会给大家带来MySQL进阶方面的一些学习总结,如有不足,还请大家留言指出:下面我们就开始今天的内容. ** 部署mysql主从 ...

最新文章

  1. Java多线程中run和start的区别
  2. python基本数据类型float_Python基本数据类型
  3. quartz集群分布式(并发)部署解决方案-Spring
  4. php json转数组不成功,phpjson转数组出错
  5. 数据库mysql项目实战 一
  6. 大数据组件监控体系构建
  7. Android 移动网络接入点名称(APN)
  8. 5G点亮工业革命前,2021需要持续点亮5G
  9. WeCube 2.0 全新架构,整装待发
  10. Python几种开发工具介绍
  11. 电磁场常见名词整理(不断更新中)
  12. 微信URL Scheme码+长链接转短链接+短链接通过h5页面跳转到微信小程序
  13. Python爬虫要学多久
  14. 一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一个人过桥,南侧桥段和北侧桥段较窄只能通过一个人,桥中央一处宽敞,允许两个人通过或歇息。试用P(wait)V(signal)操作实现
  15. 医院计算机网络故障演练记录,医院电脑服务器宕机演练脚本、过程及演练总结全套资料.doc...
  16. 华谊嘉信:依托大数据,构建智能化运营平台!
  17. 「聊天宝」体验记录,生朋友聊天
  18. spark和zeppelin实践二:安装spark和zeppelin
  19. 权限设计及算法(PHPE)
  20. K8S之Deployment控制器管理应用(十一)

热门文章

  1. 2017 最新老男孩IT培训 python全栈三期
  2. Unity Shader菲涅耳反射(Fresnel)
  3. python❀判断奇偶性
  4. 阿里及各大企业中台架构详解
  5. idea搭建android环境(超详细)
  6. 《Deep Exhaustive Model for Nested Named Entity Recognition》
  7. 一次关于youtube逆向分析协议
  8. ceph-deploy Some monitors have still not reached quorum
  9. 一个云管理平台的架构与功能设计经验谈
  10. 6、基于51单片机智能台灯坐姿定时+光线+红外感应系统设计(程序+原理图+参考论文+开题报告+任务书等)