前言:
👏 作者简介:我是笑霸final,一名热爱技术的在校学生。
📝 个人主页:个人主页1 || 笑霸final的主页2
📕 系列专栏:数据库
📧 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥 如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏
🐉 欢迎访问我的个人博客====>
笑霸final的个人博客
🧙 gitee主页笑霸final| |
github主页笑霸final
目录
- 一、配置文件
- 二、配置步骤
- 三、主机:建立账户并授权
- 四、配置从机
一、配置文件
主从机的所有配置都在 mysqld
节点下,并且都是小写字母。具体参数如下
- 必选
#主服务器唯一ID
server-id=1
#启用二进制日志,并且指明路径
log-bin=log-mysql
- 可选
# 0(默认 可读可写主机) 1只读从机
read-only=0
#控制单个而精致文件的大小,(默认为1G)
max_binlog_size=300M
#设置日志文件保留时长,单位是秒
binlog_expire_logs_seconds=6000
#设置不复制的数据库
binlog-ignore-db=test
#启用中继日志
relay-log=mysql-relay
#设置需要复制的数据库(默认全部复制)
binlog-do-db=数据库的名称
#设置binlog格式
binlog_format=STATEMENT
二、配置步骤
输入指令修改my.cnf
文件
vim /etc/my.cnf
然后把需要的指令粘贴过去
然后保存重启mysql服务
systemctl restart mysqld
主从机都需要关闭防火墙
systemctl stop firewalld.service
注意设置完后需要重启mysql服务器
上面我配置的是主机 从机配置步骤一样
三、主机:建立账户并授权
#在主机MySQL里执行授权主从复制的命令
GRANT REPLICATION SLAVE ON *,* To'slave1'@'从机器数据库IP' IDENTIFIED BY abc123':#5.5,5.7
注意:如果使用的是MySQL8,需要如下的方式建立账户,并授权slave:
CREATE USER'testfinal'@'%' IDENTIFIED BY '123456';#用户名称自己定testfinal
#设置权限 设置( *.* )任何库的任何表 给
GRANT REPLICATION SLAVE ON *.* TO 'testfinal'@'%';
ALTER USER 'testfinal'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
步骤
- 登录主机master
- 按步骤输入上面的代码
- 查询Master的状态,并记录下File和Position的值。
show master status
四、配置从机
-
步骤1:登录从机后 输入一下命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址', MASTER_USER='主机用户名', MASTER_PASSWORD='主机用户名的密码', MASTER_LOG_FILE='mysql-bin.具体数字',#具体数字写主机刚刚查的写入文件 MASTER_LOG_POS=具体值; #具体值写主机刚刚查的写入位置
举例:
CHANGE MASTER TO MASTER_HOST='192.168.65.128', MASTER_USER='testfinal', MASTER_PASSWORD='123456', MASTER_LOG_FILE='log-mysql.000001', MASTER_LOG_POS=1153;
-
如果之前设置过同步 应该先停止同步 在执行上面代码
-
步骤二#启动slave同步
START SLAVE;
接着,查看同步状态
SHOW SLAVE STATUS\G;
-
重新配置
stop slave;
reset master,#删除Master中所有的binglog文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)