基本要求
- 系统类型尽量一致。本例是 主从是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有误,仔细检查一下。
写在最后
如果对你有帮助,请点赞分享收藏加关注
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。