master slavle mysql_一.Mysql5.7.28 实现主从同步

Mysql5.7.28 主从同步实现

目录

一.Mysql下载安装

mysql的下载共有两种,一种是zip压缩文件,另一种是msi安装程序

官方5.7版本zip压缩文件下载页面.

官方5.7版本msi安装程序下载页面.

我这里是用的5.7.28的版本的msi安装程序,下面的百度云盘可以直接下载(建议直接用百度云的)

5.7.28百度云盘版本msi安装程序.

提取码:qj25

不会安装的小伙伴看这里

附上大神的安装教程链接 尽情的点我就是了.

二.主从同步实现

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

fe538d2232de9d748aee0dcf34e4b8d4.png

2.拷贝一份安装文件到自己指定的位置 方便统一管理

befe6dddd96dfc7dabb1dcd16d936577.png

3.先配置主库 需要修改我们拷贝的mysql安装文件 master/ my .ini 配置文件

fe37cd74fb513eaa0cd867b2fb8d876e.png

注意: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中自带的安装命令稍微修改一下

6d114250a2a817e1a95615be4276033b.png

#把路径修改为自己master安装文件my.ini的路径 方便等一下粘贴

mysqld --install master --defaults-file="F:\javafile\mysqlTest\master\my.ini"

以管理员身份打开cmd 命令行

d3b8a513a69ffc6a4a8abddd8b54cc58.png

打开命令行后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

8cde6bceb136669848c40be3b350f9fd.pnginstall/remove of the service denied 权限不足 以管理身份运行

安装成功后系统提示为

7df72fad2d14128cf34aea292fb28ff2.png

#如果弄错了想重新安装 先执行下列命令将服务删除 再重新执行安装命令

mysqld --remove master --defaults-file="F:\javafile\mysqlTest\master\my.ini"

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

net start master

#停掉服务

net stop master

也可以在任务管理器操作服务 进行启动关闭

aed73a2b73beabf39fe15833a0e9f0d7.png安装完毕后检查一下 bin-log文件是否生成

596330db640e85b4810b4f332c3acbe9.png

启动成功

0ed3b36af3da64b8a07ae55fe48b2ab6.png

打开你的数据库可视化工具 连接一下 链接成功 就可以

123986bf39e3bc4b09d6e95665f2d859.png

6.安装从数据库slave

这里直接再拷贝master文件

c0b022c6174fe712bd71b05dfa83069d.png同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方式

a9750d7c3c2a45b91363fd23778742b5.png(2)我这里直接打开数据库可视化工具进行操作 打开主服务器master

9dd7d9424c4c2d4a4346a6bdb04400c9.png

(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 否则就会出现下列错误

b9e751dfd17e369b51e4eefb6c10e091.png

(4)成功示例

3854910e0ed72f996797a52e3b646b20.png

eb5524e59e882653fac8dc3ba0f673d9.png

查看Slave_IO_Running状态发现为NO,解决如下

bef4b35b2bc3386d8fee544b4140e883.png

(5)在master新建数据库 新建表查看是否同步

0c16ee3f0a4a4539a23bc4af092b2d00.png

同步成功

8eafa7d07c629801f322919d75f07e3c.png

也可以通过安装文件中生成的log文件查看同步情况

080c94297944c3f2e3fb913dd116ccdb.png

插入一条数据

c5ebadae9986686d99e2849de23f4eb9.png查看slave安装目录下的slave.log 主从同步成功

5dabc0c5cda26142532390407827c60f.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值