阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu下MySQL主从复制笔记

471次阅读
没有评论

共计 2759 个字符,预计需要花费 7 分钟才能阅读完成。

一:测试环境介绍

主从复制测试环境是 Ubuntu+MySQL 主 5.7,master 服务器 ip 是 192.168.71.135,slave 服务器 ip 是 192.168.71.137,Ubuntu 环境是从一台已配置好环境的服务器克隆的。

二:mysql 主从配置

1:)  master 配置

a 在 mysql 目录下(/etc/mysql),mysql.cnf 文件中添加 server-id 和 Log-bin. 主从服务器的 server-id 不能相同

log-bin=mysql-bin

server-id=100

Ubuntu 下 MySQL 主从复制笔记

设置好后,使用 show master status; 查询一下状态

Ubuntu 下 MySQL 主从复制笔记

设置从服务器连接的账号,密码等

配置连接用户

GRANT REPLICATION SLAVE ON *.* to ‘mysql 账号 ’@’%’ identified by ‘ 密码 ’; 这里是测试,没有指定从服务器的 ip. 如需指定 ip, 执行下面一个指令

GRANT REPLICATION SLAVE ON *.* to ‘mysql 账号 ’@’192.168.71.137’ identified by ‘ 密码 ’;

配置好后记录重启 mysql.

2:)配置从数据库

2.1  Slave的配置与 master 类似 (配置文件名称:mysql.cnf,在 /etc/mysql 目录,你的环境可能不是该目录),你配置完成后仍然需要重启slaveMySQL。配置参数如下:
log_bin= mysql-bin
server_id= 110
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果 slave 为其它 slavemaster,必须设置 bin_log。在这里,我们开启了二进制日志,而且显示的命名( 默认名称为 hostname,但是,如果hostname 改变则会出现问题 )
relay_log 配置中继日志,log_slave_updates表示 slave 将复制事件写进自己的二进制日志 ( 后面会看到它的用处 )
有些人开启了 slave 的二进制日志,却没有设置 log_slave_updates,然后查看slave 的数据是否改变,这是一种错误的配置。所以,尽量使用 read_only,它防止改变数据( 除了特殊的线程 )。但是,read_only 并是很实用,特别是那些需要在 slave 上创建表的应用。

 

2.2  配置完成后重新启动mysql

/etc/init.d/mysql restart

2.3   执行同步SQL 语句

mysql> change master to
master_host=’192.168.71.135’,
master_user=’syncuser’,
master_password=’123456’,
master_log_file=’mysql-bin.000001’, — 该值来源于主库,执行 show master status 后的 File 字段
master_log_pos=443;— 该值来源于主库,执行 show master status 后的 position 字段

2.4 查询从库状态

start slave;

show slave status\G

Ubuntu 下 MySQL 主从复制笔记

 

 三:主库 SQL 测试

主库创建数据库:

Create database copytest;

创建表:

Create table tu (uid bigint primary key);

添加一条数据

Insert into tu (1);

现在我们来看从数据库:

Ubuntu 下 MySQL 主从复制笔记

从图中可以看到,主库的数据,已经复制到了从库。

五:总结问题

1:执行同步语句,出错

mysql> change master to
master_host=’192.168.71.135’,
master_user=’syncuser’,
master_password=’123456’,
master_log_file=’mysql-bin.000001’,
master_log_pos=443;

出现如下错误:

Slave is not configured or failed to initialize properly. You must at least set –server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

解决办法:

删除 slave 的 mysql 库的表

drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;

重新启动 slave 数据库:/etc/init.d/mysql restart;

2: 配置好的,slave 执行 show slave status\G 语句后,slave_io_running: no 显示 no

slave_io_running: yes 才能正常复制,为 no 时无法复制,可以看到有一个错误,

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.

意思是 master 和 slave 的 uuid 重复了,用 show variables like ‘%server_uuid%’ 查询出 uuid,明显两台机子的 uuid 一样,所以出现了上面的错误.

Ubuntu 下 MySQL 主从复制笔记

因为主从的 utunbu 环境是克隆的,所以出现了这个问题,我们进入 mysql 的 data 目录,修改 auto.cnf 文件,通过 show variables like ‘%datadir%’ 查询出 data 目录。

Ubuntu 下 MySQL 主从复制笔记

MySQL 主从复制部署  http://www.linuxidc.com/Linux/2017-09/146728.htm

MySQL 主从复制技术的简单实现  http://www.linuxidc.com/Linux/2017-11/148534.htm

Ubuntu 16.04 下实现 MySQL 主从复制  http://www.linuxidc.com/Linux/2017-08/146624.htm

MySQL 主从复制及遇到问题的解决  http://www.linuxidc.com/Linux/2017-10/147557.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149303.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2759字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7972194
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...