Mysql5.7.28 主从同步实现
目录
一.Mysql下载安装
-
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主从同步,认知有限,不对之处请各位前辈指点。同时借此博文分享我的学习心得,抛砖引玉。