基本要求

  • 系统类型尽量一致。本例是 主从是Linux
  • MySQL版本尽量一致。MySQL版本不一致可能导致数据同步的失败

配置开始

主服务器配置

查找MySQL配置文件

find / -name my.cnf

在my.cnf的[mysqld]下面添加

[mysqld]
server-id=1 #注意这个ID要唯一 从服务器设置的时候不可以相同
log-bin="/var/lib/mysql/mysql-bin" #指定MySQL二进制文件位置
read-only=0 #读写不影响,如果开启 则该服务器只可以读数据无法写入数据
binlog-do-db=dbname # 指定需要同步的数据名称,从服务器要有一样的数据库。非必选参数

填写完毕之后保存退出,重启MySQL服务

systemctl restart mysqld.service

至此主服务器修改完毕,使用SQL查询主服务器状态

show master status

记录下"File"(二进制文件名) "Position"(数据同步开始位置)的值,从服务器配置需要使用

从服务器配置

查找MySQL配置文件

find / -name my.cnf

在my.cnf的[mysqld]下面添加

[mysqld]
server-id=2 #注意这个ID要唯一 并不和主服务器相同

填写完毕之后保存退出,重启MySQL服务

systemctl restart mysqld.service

至此从服务器修改完毕,使用SQL开启从服务器的slave服务

创建连接配置信息sql

# 主机IP 主服务器IP
# File名字 是上一步中保存下的File的值
# Position数字 上一步保存的Position的值
CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='MySQL账户登录用户名',MASTER_PASSWORD='MySQL账户登录密码',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position数字;

启动服务sql

start slave #开启
stop slave #停止

查看从服务器运行状态sql

show slave status

Slave_IO_running Slave_SQL_running都是OK的时候说明从服务器未出错。否则查看返回值结构里面关于Error字段返回的内容,进行纠错。

可能遇到的错误

  • MySQL账户密码不正确。
  • MySQL3306端口未打开 阿里云服务器需要在“安全组规则”-“配置规则”中打开端口。
  • 从服务器配置SQL有误,仔细检查一下。

写在最后

如果对你有帮助,请点赞分享收藏加关注


SmallForest
239 声望12 粉丝

github: