mariadb主从复制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mariadb主从复制相关的知识,希望对你有一定的参考价值。
mariadb主从复制:
复制:每个节点都有相同的数据集
从节点:
I/O Thread:从master请求二进制日志事件,并保持在中继日志中
SQL Thread:从中继日志中读取日志事件,在本地完成重放
主节点:
dump Thread:为每个slave的I/O Thread启动一个dump线程,用于向其发送binary log events
特点:
1.异步复制
2.主从数据不一致比较常见
3.一主多从
4.从服务器还可以有从服务
配置过程:
主节点:
1.启动二进制日志
2.为当前节点设置一个全局唯一的ID号
3.创建有复制权限的用户账号
replication slave,replication client
从节点:
1.启动中继日志
2.位当前节点设置一个全局唯一的ID号
3.使用有复制权限的用户账号连接至主服务器,并启动复制线程
主节点:
vi /etc/my.cnf
在[mysqld]中加入:
log-bin=mysql_bin_log #启动二进制日志
server-id=1 #主节点和从节点一定要不通
innodb_file_per_table=ON
skip_name_resolve=ON
重启mariadb:systemctl restart mariadb
创建复制用户并授权:
MariaDB [(none)]> grant replication slave,replication slave on *.* to ‘repluser‘@‘172.16.%.%‘ identified by ‘123456‘
MariaDB [(none)]> show master logs;
+----------------------+-----------+
| Log_name | File_size |
+----------------------+-----------+
| mysql_bin_log.000001 | 30379 |
| mysql_bin_log.000002 | 1038814 |
| mysql_bin_log.000003 | 264 |
| mysql_bin_log.000004 | 264 |
| mysql_bin_log.000005 | 245 | #记住这个二进制文件名和对应的序号
+----------------------+-----------+
5 rows in set (0.00 sec)
从节点:
vi /etc/my.cnf
在[mysqld]中加入:
relay-log=relay-log
server-id=2
innodb_file_per_table=ON
skip_name_resolve=ON
重启mariadb:systemctl restart mariadb
连接主服务器:
MariaDB [(none)]> change master to master_host=‘172.16.6.12‘,master_user=‘repluser‘,master_password=‘123456‘,master_log_file=‘mysql_bin_log.000005‘,master_log_pos=245;
开始复制:
MariaDB [(none)]> start slave;
查看复制状态:
MariaDB [(none)]> show slave status\G;
以上是关于mariadb主从复制的主要内容,如果未能解决你的问题,请参考以下文章