一.Mysql5.7.28 实现主从同步

Mysql5.7.28 主从同步实现

目录

一.Mysql下载安装

  1. mysql的下载共有两种,一种是zip压缩文件,另一种是msi安装程序
    官方5.7版本zip压缩文件下载页面 .
    官方5.7版本msi安装程序下载页面 .

    我这里是用的5.7.28的版本的msi安装程序,下面的百度云盘可以直接下载(建议直接用百度云的)
    5.7.28百度云盘版本msi安装程序.
    提取码:qj25
    不会安装的小伙伴看这里
    附上大神的安装教程链接 尽情的点我就是了.

二.主从同步实现

1.安装完毕后 找到自己选择的安装文件位置
安装文件位置

2.拷贝一份安装文件到自己指定的位置 方便统一管理
在这里插入图片描述
3.先配置主库 需要修改我们拷贝的mysql安装文件 master/ my .ini 配置文件
在这里插入图片描述
注意:mysql 5.7.28之前版本的 my.ini 配置文件配置方式略有不同 需要的自己去看一下其他文章的配置

#
[mysqld]
# 端口配置
port=3309  
# bin-log日志开启  
log-bin=mysql-bin

# Path to the database root  配置的路径为: 拷贝的安装文件下/Data 
datadir="F:/javafile/mysqlTest/master/Data"
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# General and Slow logging. 日志的输出路径同理修改为当前路径
log-output=FILE

general-log=1

general_log_file="F:/javafile/mysqlTest/master/master.log"

slow-query-log=1

slow_query_log_file="F:/javafile/mysqlTest/master/masterquery.log"

long_query_time=10

# Error Logging.
log-error="F:/javafile/mysqlTest/master/mastererror.log"
#server 编号一定要加上
server-id=1

master的配置文件就修改完毕了,记得保存

4.接下来就是master的安装及启动:
拷贝my.ini中自带的安装命令稍微修改一下

在这里插入图片描述

#把路径修改为自己master安装文件my.ini的路径 方便等一下粘贴
mysqld --install master --defaults-file="F:\javafile\mysqlTest\master\my.ini"

以管理员身份打开cmd 命令行
在这里插入图片描述
开命令行后cd到master文件bin目录下执行安装命令 不会的看下面

C:\Users\dev>f:

F:\cd /javafile/mysqlTest/master/bin
# master 为自定义的服务名称 可以自行替换  --defaults-file=这里为你自己my.ini的路径
F:\javafile\mysqlTest\master\bin>mysqld --install master --defaults-file="F:\javafile\mysqlTest\master\my.ini"


执行过后报这个错误证明你没有以管理员身份运行cmd,听我的乖,管理员身份运行cmd
在这里插入图片描述install/remove of the service denied 权限不足 以管理身份运行

安装成功后系统提示为
在这里插入图片描述

#如果弄错了想重新安装 先执行下列命令将服务删除 再重新执行安装命令
mysqld --remove master --defaults-file="F:\javafile\mysqlTest\master\my.ini"

#安装完毕后输入:net start master 启动服务 master--为你自己起的服务名称
net start  master 
#停掉服务
net stop master

也可以在任务管理器操作服务 进行启动关闭
在这里插入图片描述安装完毕后检查一下 bin-log文件是否生成
在这里插入图片描述

启动成功

打开你的数据库可视化工具 连接一下 链接成功 就可以
在这里插入图片描述

6.安装从数据库slave
这里直接再拷贝master文件
在这里插入图片描述同master一样只需要修改 slave 文件中的my.ini配置文件

#
[mysqld]
# 端口配置
port=3310  
# bin-log日志开启  
log-bin=mysql-bin
# Path to the database root  配置的路径为: 拷贝的安装文件下/Data 
datadir="F:/javafile/mysqlTest/slave/Data"
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# General and Slow logging. 日志的输出路径同理修改为当前路径
log-output=FILE

general-log=1

general_log_file="F:/javafile/mysqlTest/slave/slave.log"

slow-query-log=1

slow_query_log_file="F:/javafile/mysqlTest/slave/slavequery.log"

long_query_time=10

# Error Logging.
log-error="F:/javafile/mysqlTest/slave/mastererror.log"
#server 编号一定要加上
server-id=10

可以用同样的方式配置多台 从服务器
修改slave服务器的配置文件my.ini将 server-id 修改为 server-id = 10,并确保这个ID没有被别的MySQL服务所使用。

7.修改完 用上面master同样的方式将slave从库安装好 启动 连接上 7.主从服务准备完毕,我们就开始配置主从同步

(1)在主服务器master 上 创建授权savle服务器的使用的账号及权限

#最后一段具体填充: '用户名'@'自己的IP地址' IDENTIFIED by '密码';
grant REPLICATION SLAVE ON *.* TO 'lvtest'@'192.113.151.112' IDENTIFIED by '123456';
#常看master状态
show master status

查看ip方式在这里插入图片描述(2)我这里直接打开数据库可视化工具进行操作 打开主服务器master
在这里插入图片描述
(3)执行完毕后在可视化工具 打开从服务器slave连接

change master to
master_host='192.**',   # master主服务器的 IP地址
master_user='slaveuser1',   #master数据库通过GRANT授权的账号也就是刚刚在master授权的那个的用户
master_password='123456',         #master数据库通过GRANT授权的密码 也就是刚刚在master授权的那个的用户密码
master_port=3309,              # 这里为master服务器的端口
master_log_file='mysql-bin.000004', #master数据库中通过show master status显示的File名称 上张图片有提到
master_log_pos=546       #master数据库的通过show master status显示的Position的值 上张图片有提到
#重新启动slave服务
start slave 
stop master
#查看slave状态 查看是否发生关系
show slave status 
show variables like 'server_id'

#查看当前链接server_id 
show variables like 'server_id'
#修改服务 server_id
set global server_id=2

记住执行语句前记得 stop slave 否则就会出现下列错误
在这里插入图片描述

(4)成功示例
在这里插入图片描述在这里插入图片描述
查看Slave_IO_Running状态发现为NO,解决如下
在这里插入图片描述

(5)在master新建数据库 新建表查看是否同步
在这里插入图片描述
同步成功
在这里插入图片描述

也可以通过安装文件中生成的log文件查看同步情况
在这里插入图片描述
插入一条数据
在这里插入图片描述查看slave安装目录下的slave.log 主从同步成功
在这里插入图片描述

多个从库的配置也是一样哟,都是使用在主库创建的账号 来配置 注意的就是server_id的唯一性

本篇文章只是粗略的搭建Mysql主从同步,认知有限,不对之处请各位前辈指点。同时借此博文分享我的学习心得,抛砖引玉。

猜你喜欢

转载自blog.csdn.net/weixin_45584768/article/details/113250131