展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

主从服务器搭建

  • 准备2台centos服务器,2台服务器都安装了mysql
  • 确保第2台服务器与第1台服务器的不同
① MAC地址 
② hostname 
③ IP 地址 
④ UUID

# 修改第2台服务器的mysql的uuid
vim /var/lib/mysql/auto.cnf
# 重启mysql
systemctl restart mysqld
  • 修改主机配置文件
[mysqld]
#[必须]主服务器唯一ID
server-id=1
#[必须]启用二进制日志,指名路径。比如:自己本地的路径/log/mysqlbin
log-bin=atguigu-bin
#[可选] 0(默认)表示读写(主机),1表示只读(从机)
read-only=0
#设置日志文件保留的时长,单位是秒
binlog_expire_logs_seconds=6000
#控制单个二进制日志大小。此参数的最大和默认值是1GB
max_binlog_size=200M
#[可选]设置不要复制的数据库
binlog-ignore-db=test
#[可选]设置需要复制的数据库,默认全部记录。比如:binlog-do-db=atguigu_master_slave
binlog-do-db=需要复制的主数据库名字
#[可选]设置binlog格式
binlog_format=STATEMENT
  • 修改完配置后,重启mysql服务

  • 当主从服务器搭建完成后,再创建数据库

  • 修改从机的配置文件

# my.cnf 的 [mysqld]
#[必须]从服务器唯一ID
server-id=2
#[可选]启用中继日志
relay-log=mysql-relay
  • 关闭2台服务器的防火墙

  • 主机创建账户并授权

CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';

ALTER USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

flush privileges;
  • 查看主机状态
show master status;

  • 从机上配置将要复制的主机
# 切换到从机并登录mysql

# 配置要复制的主机
CHANGE MASTER TO
MASTER_HOST='主机的IP地址',
MASTER_USER='主机用户名',
MASTER_PASSWORD='主机用户名的密码',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;

# 案例:第1步
CHANGE MASTER TO
MASTER_HOST='192.168.1.150',MASTER_USER='slave1',MASTER_PASSWORD='123456',MASTER_LOG_F
ILE='atguigu-bin.000007',MASTER_LOG_POS=154;

# 如果报错,是否之前做过同步,如果做过同步,先停止,再执行上面的命令
stop slave;

# 第1步执行成功后,启动同步
# 第2步
start slave;

# 如果第2步报错
# 删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件
reset slave; 

# 查看同步状态
SHOW SLAVE STATUS\G;

# 同步配置成功后,在主机上增删改查,从机上自动复制

  • 停止主从复制
# 从服务器执行
stop slave;
  • 重新配置主从复制
# 当停止主从复制后,需要重新配置
# 在从机上执行如下
stop slave;
# 删除Master中所有的binglog文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)
reset master; 
posted @ 2022-07-06 11:49  DogLeftover  阅读(63)  评论(0编辑  收藏  举报