Centos7 Mariadb主从复制

导读:本篇文章讲解 Centos7 Mariadb主从复制,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

实验环境

主Mariadb:
centos 7
master:192.168.14.210

从Mariadb:
centos 7
slave:192.168.14.211

主从复制介绍:

第一步:master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。Mariadb将事务写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

第二步:slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经执行完master产生的所有文件,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

第三步:SQL slave thread(SQL线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重新执行其中的事件而更新slave的数据,使其与master中的数据一致。

模式: C/S 模式

端口:3306

一、安装mariadb(两台)

1、安装

[root@master ~]# yum install -y mariadb-server mariadb

[root@slave ~]# yum install -y mariadb-server mariadb

2、防火墙允许访问3306

[root@master ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@master ~]# firewall-cmd --reload

[root@slave ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@slave ~]# firewall-cmd --reload

二、主节点

1、修改配置文件

[root@master ~]# vi /etc/my.cnf
[mysqld]
server-id=1
log-bin
binlog-format=row

说明:

log-bin #启用二进制日志,默认存在/var/lib/mariadb 下面
server-id=1 #本机数据库ID 唯一标示。

2、启动mysql服务

[root@master ~]# systemctl start mariadb
[root@master ~]# mysql -e "SHOW MASTER LOGS;"
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |       245 |
+--------------------+-----------+

3、授权给从节点复制的账号

[root@master ~]# mysql -e "GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'192.168.14.%' IDENTIFIED BY 'centos';"  

三、从节点

1、修改配置文件

[root@slave ~]# vi /etc/my.cnf
[mysqld]
server-id=2
log-bin
binlog-format=row
read-only        #使用ProxySQL读写分离的时候需要填写

2、启动数据库服务

[root@slave ~]# systemctl start mariadb

3、写入CHANGE MASTSER TO信息

[root@slave ~]# mysql
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.14.210', MASTER_USER='repluser',MASTER_PASSWORD='centos',MASTER_PORT=3306,MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=245;  

4、启动复制线程

MariaDB [(none)]> start slave;

停止:stop slave

重置:reset slave

5、查看状态

MariaDB [(none)]> show slave status \G

Centos7 Mariadb主从复制

四、测试主从复制

1、主节点创建数据库并添加表

MariaDB [(none)]> create database my_db;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> use my_db;
Database changed
MariaDB [my_db]> create table stu (age int,name char(40));
Query OK, 0 rows affected (0.03 sec)


MariaDB [my_db]> show tables;
+-----------------+
| Tables_in_my_db |
+-----------------+
| stu             |
+-----------------+
1 row in set (0.00 sec)


MariaDB [my_db]> insert into stu values(210,'master');
Query OK, 1 row affected (0.03 sec)

MariaDB [my_db]> select * from stu;
+------+--------+
| age  | name   |
+------+--------+
|  210 | master |
+------+--------+
1 row in set (0.00 sec)

MariaDB [my_db]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

查看主节点二进制日志

Centos7 Mariadb主从复制

2、从节点查看

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.01 sec)

MariaDB [(none)]> use my_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [my_db]> select * from stu;
+------+--------+
| age  | name   |
+------+--------+
|  210 | master |
+------+--------+
1 row in set (0.00 sec)

到此主从复制配置成功

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95245.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!