一主一从

准备:两台服务器A、B

操作:

1. 安装 mariadb

两台服务器分别安装好Mariadb

#安装mariadb
sudo yum install mariadb-server 
#开启
sudo systemctl start mariadb
#设置开机自动启动
sudo systemctl enable mariadb
#查看状态
sudo systemctl status mariadb
#设置初始密码
sudo mysql_secure_installation

2. 配置主从服务器

分别修改下my.cnf

服务器A:主

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log_bin                   = /var/lib/mysql/bin-log
log_bin_index             = /var/lib/mysql/mysql-bin.index
expire_logs_days          = 7
server_id                 = 160 #主从配置
binlog_format             = ROW

服务器B:从

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log_bin                   = /var/lib/mysql/bin-log
log_bin_index             = /var/lib/mysql/mysql-bin.index
expire_logs_days          = 7
binlog_format             = ROW

# 主从配置
server-id=162

修改完成后重启Mariadb服务

systemctl restart mariadb.service

在主服务器上建立帐户并授权slave

gant replication slave on *.* to root@10.10.10.100 identified by '123456';
flush privileges;

# ps: 10.10.10.100 为从服务器的ip
# 123456 为从服务器的MySQL密码

3. 登录主服务器的mysql,查询master的状态

show master status;

4. 配置从服务器 Slave

change master to master_host='10.10.0.002',master_user='root',master_password='123456',master_log_file='bin-log.000002',master_log_pos=2759;
# ps:10.10.0.002 为主服务器ip
# bin-log.000002 为上面第三点的 File
# 2759为上面第三点的 Position
# 启动从服务器复制功能
start slave;

# 检查从服务器复制功能状态
show slave status\G

5. 为了保证主从数据一致,设置从服务器为只读

show global variables like 'read%'; // 查看 read_only 状态

set global read_only=1; // 当前环境生效,重启后失效
# 可以到 /etc/my.cnf 添加一行 read_only=1,然后重启即可

6. 其他

主从没有同步

#查看Master库状态
show processlist;
show master status;
#再到Slave上查看
show slave status\G  
发现从库没有执行SQL
Slave_IO_Running: Yes Slave_SQL_Running: No

可以忽略错误后,继续同步,这种方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;

之后再用mysql> show slave status\G 查看

mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

现在主从同步状态正常了

如果是需要同步主库之前的数据,需要先在主库备份好,然后将备份文件发送到从库的服务器,在从库执行后,才会重新同步

参考链接:

https://blog.csdn.net/qq_32248673/article/details/59055972

https://segmentfault.com/a/1190000038663356

https://blog.starryvoid.com/archives/349.html#1Mariadb

https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html

https://www.cnblogs.com/yinzhengjie/p/11816066.html