IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> MySql主从复制实战及排坑说明 -> 正文阅读

[系统运维]MySql主从复制实战及排坑说明

1、配置MySQL主库

在Linux环境下安装好MySQL后(安装请参考原创:Linux环境下,安装jdk、tomcat、mysql、redis以及项目部署),
修改MySQL主库的配置文件 /etc/my.cnf

vim /etc/my.conf

在my.conf中添加如下配置:

[mysqld]
log-bin=mysql-bin  #必须启用二进制日志
server-id=100      # MySQL服务器的唯一id 

注:服务器的id随意配置,但一定要能唯一地标识一个MySQL服务
在这里插入图片描述
修改配置后,需要重启MySQL服务并登录:

systemctl restart mysqld
mysql -uroot -p123456

主库授予从库可以访问的配置信息,用户名为cloneRoot,密码为Root@123456

grant replication slave on *.* to 'cloneRoot'@'%' identified by 'Root@123456';
# 主库执行该命令后,一定不要再执行其他命令,避免后续从库 从主库获取授权时出现参数不一致的情况
show master status;

注意:给从库授权的密码不能太简单,不然会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,或者执行如下两个设置参数的命令:

# 设置密码的安全等级和密码的最短有效长度
set global validate_password_policy=LOW
set global validate_password_length=4;

在这里插入图片描述

2、配置从库

同对主库的操作,来修改MySQL从库的配置文件 /etc/my.cnf,

[mysqld]
server-id=101      # MySQL服务器的唯一id 

在这里插入图片描述
重启从库的mysql服务,并登录mysql(我配置的密码为123456):

systemctl restart mysqld
mysql -uroot -p123456
change master to master_host='192.168.40.144',master_user='cloneRoot',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=442;

注意:master_user、master_password是前面主库执行grant replication slave on *.* to 'cloneRoot'@'%' identified by 'Root@123456';命令来授予从库的,master_log_file、master_log_pos是主库执行show master status;命令得到。
在这里插入图片描述
如上,从库的配置就已完成,可以在从库通过show slave status; 命令来查看从库信息。在这里插入图片描述
显示的从库信息看起来比较凌乱,可以复制粘贴到Navicat或Sqlyog等工具中查看。
在这里插入图片描述

3、排错说明

从库所在虚拟机 我是直接由 主库所在的虚拟机克隆而来的,因此,会出现从库和主库的mysql服务UUID相同的错误情况。
在这里插入图片描述
也还可以分别在从库和主库输入show variables like '%server_uuid%';命令来查看。
在这里插入图片描述

4、解决办法

退出mysql的命令行,修改mysql从库服务器的uuuid的值,需要保证本主库和主库及其他从库的uuid不一样。

# 查看auto.cnf文件的位置,找到并编辑auto.cnf
find -name auto.cnf
vim ./var/lib/mysql/auto.cnf

在这里插入图片描述
再重启MySQL服务,mysql -uroot -p123456登录查看server_uuid
如果主从库的server_uuid还是一样,可以考虑下面的方案:
分别在从库和主库所在的虚拟机中,删除/var/lib/mysql/auto.cnf,命令如下:

rm -rf /var/lib/mysql/auto.cnf

如此,server_uuid就不一样了,

在这里插入图片描述
在这里插入图片描述
并且可以通过show slave status\G 可以看到
Slave_IO_RunningSlave_SQL_Running的值 都是yes,如此,就可以进行主从复制有关操作了(即修改主库,从库也会跟着修改,保持和主库数据一致)。

解决方案参考:主从复制报错Fatal error:The slave I/O thread stops because master and slave have equal MySQL server UUIDs;

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:43:29  更:2022-05-12 16:44:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/26 23:20:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码