Mariadb 主从
说明:主-备方式,即指的是一台服务器处于某种业务的激活状态,另一台服务器处于该业务的备用状态,主数据库数据更新后,备份服务器同步数据至本机
也可搭建多个从节点,此处以 一主一从为例
节点类型 | IP | PORT |
---|---|---|
主节点 | 192.168.5.81 | 3306 |
从节点 | 192.168.5.82 | 3306 |
主节点、从节点参照单机部署安装后
修改主节点配置
主节点修改配置
vi /etc/my.cnf.d/server.cnf
配置内容如下
[mysqld]
# 关闭区分表名的大小写
lower_case_table_names=1
# 只有主节点需要开启
binloglog-bin=mysql-bin
# 添加需同步数据的数据库(可选)
replicate-do-db=test
# 添加不同步数据的数据库(可选)
binlog-ignore-db=information_schemabinlog-ignore-db=mysqlbinlog-ignore-db=performance_schema
# statement:基于SQL语句复制
# row:基于行复制
# mixed:混合模式
# mariaDB会根据SQL语句的类型和内容来决定是使用STATEMENT还是ROW格式
# 通常设置为ROW,支持更复杂的复制场景
binlog_format=row
# 配置server_id(主、从不能重复)
server-id=1
修改从节点配置
从节点修改配置
vi /etc/my.cnf.d/server.cnf
配置内容如下:
[mysqld]
# 关闭区分表名的大小写
lower_case_table_names=1
# 开启中继日志(/var/lib/mysql/为mysql配置文件中的datadir)
relay-log=/var/lib/mysql/relay-bin
# 限制从服务器只读
read_only=1
# 修改server_id
server-id=2
主、从节点修改配置后均重启服务
systemctl restart mariadb
登录主节点,创建供从节点进行binlog读取的账号
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave';
查看主节点状态,获取Position和Binlog文件名称
SHOW MASTER STATUS;
登录从节点,设置主节点信息
#说明
CHANGE MASTER TO MASTER_HOST='主节点ip',MASTER_USER='主节点提供的用户名',MASTER_PASSWORD='密码',MASTER_LOG_FILE='binlog文件名',MASTER_LOG_POS='Position';
#实际
CHANGE MASTER TO MASTER_HOST='192.168.5.81',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=516;
从节点开启复制
stop slave;
reset slave;
start slave;
从节点查看状态
show slave status\G
# 看到这两个配置是Yes主从关系配置成功并开启
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes