mariadb配置主从复制

实验1: 主从复制( 一主 一从 )

实验前:关闭selinux和防火墙

主服务器:192.168.21.104

yum -y install mariadb-server //安装mariadb

[[email protected] ~]#vim /etc/my.cnf
[mysqld]
log_bin= mysql-bin //启用二进制日志
server_id=1 //为当前节点设置一个全局惟一的ID号

systemctl start mariadb //启动mariadb

创建有复制权限的用户账号
MariaDB [hellodb]> grant replication slave on . to ‘repluser‘@‘192.168.21.106‘ identified by ‘replpass‘;
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 512 | | |
+------------------+----------+--------------+------------------+
从服务器:192.168.21.106

yum -y install mariadb-server //安装mariadb

[[email protected] ~]#vim /etc/my.cnf
[mysqld]
server_id=2

systemctl start mariadb //启动mariadb

使用有复制权限的用户账号连接至主服务器,并启动复制线程
MariaDB [hellodb]> CHANGE MASTER TO MASTER_HOST=‘192.168.21.104‘,
MASTER_USER=‘repluser‘,
MASTER_PASSWORD=‘replpass‘,
MASTER_LOG_FILE=‘mysql-bin.000001‘,
MASTER_LOG_POS=512;

MariaDB [hellodb]> start slave;

查看slave状态
MariaDB [hellodb]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.21.104
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-bin.000001
Read_Master_Log_Pos: 413
Relay_Log_File: mariadb-relay-bin.000002
Relay_Log_Pos: 699
Relay_Master_Log_File: mariadb-bin.000001
Slave_IO_Running: Yes //IO-thread线程已启动
Slave_SQL_Running: Yes //SQL-thread线程已启动
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 413
Relay_Log_Space: 995
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1

测试:
主服务器插入一条记录并查看:
MariaDB [hellodb]> insert into teachers (Name, age) values(‘mage‘,20);

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 5 | mage | 20 | NULL |
+-----+---------------+-----+--------+

从服务器上查看:
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 5 | mage | 20 | NULL |
+-----+---------------+-----+--------+
实验2: 主从复制 ( 一主 一从 一从 )
======================================================
一主: 192.168.21.104
一从: 192.168.21.106
一从: 192.168.21.111

在上面实验基础之上,做以下配置:
从服务器 192.168.21.106
[[email protected] ~]#vim /etc/my.cnf
[mysqld]
server_id=2
log_bin
log_slave_updates

systemctl start mariadb //启动mariadb

MariaDB [hellodb]> grant replication slave on . to ‘centos‘@‘192.168.21.111‘ identified by ‘centos‘;

从服务器 192.168.21.111

yum -y install mariadb-server //安装mariadb

[[email protected] ~]#vim /etc/my.cnf
[mysqld]
server_id=3
read_only=on

systemctl start mariadb //启动mariadb

MariaDB [hellodb]> CHANGE MASTER TO MASTER_HOST=‘192.168.21.106‘,
MASTER_USER=‘centos‘,
MASTER_PASSWORD=‘centos‘,
MASTER_LOG_FILE=‘mariadb-bin.000001‘,
MASTER_LOG_POS=745;

MariaDB [hellodb]> start slave;

MariaDB [hellodb]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.21.106
Master_User: centos
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-bin.000001
Read_Master_Log_Pos: 745
Relay_Log_File: mariadb-relay-bin.000002
Relay_Log_Pos: 531
Relay_Master_Log_File: mariadb-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 745
Relay_Log_Space: 827
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
1 row in set (0.00 sec)

测试:
主服务器 192.168.21.104上插入一条记录并查看
MariaDB [hellodb]> insert into teachers (Name, age) values(‘mage‘,20);
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 6 | mage | 20 | NULL |
+-----+---------------+-----+--------+

从服务器192.168.21.106上查看
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 6 | mage | 20 | NULL |
+-----+---------------+-----+--------+

从服务器192.168.21.111上查看
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 6 | mage | 20 | NULL |
+-----+---------------+-----+--------+

原文地址:https://www.cnblogs.com/ztxd/p/12249244.html

时间: 2024-08-28 21:01:04

mariadb配置主从复制的相关文章

MariaDB数据库主从复制、双主复制、半同步复制、基于SSL的安全复制实现及其功能特性介绍

一.复制概述 MariaDB/MySQL内建的复制功能是构建大型,高性能应用程序的基础.将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将MySQL的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位

MySQL单机多实例安装并配置主从复制

单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cnblogs.com/wingsless/p/4002806.html,我已经安装好了MySQL,不过这个是单实例的,要更改也可以,但是担心会出现问题,于是我将下面的东西删掉: 1 #rm -f /etc/init.dmysql 2 $rm -f /home/mysql/data 建立这么几个目录:

双apache + php + nfs + mariadb 配置 以discuz做测试

实验目标: 1,两台前端apache和php都挂载nfs文件系统中的php程序. 2,mysql 为单独一台服务器,为php页面程序提供数据库存储 3,静态页面文件都放在nfs服务器上 4,需要dns轮循为两台前端服务器分配访问请求 缺点: 压力都在文件存储服务器上 优点:不用考虑两台web服务器静态页面一致性的问题. 操作大体步骤: 1,两台web服务器:挂载nfs.编译安装apache,添加支持fcgi协议的模块,把php请求都代理到php服务器,站点根目录为挂载的文件.根据实际情况调整进程

mongodb配置主从复制

mongodb配置主从复制比mysql简单多了 1.安装,用配置文件启动 2.修改配置文件 主的配置 [[email protected] mongodb]# cat /etc/mongod.conf port=27017 dbpath=/usr/local/mongodb/data logpath=/usr/local/mongodb/logs logappend=true journal=true fork=true master=true 从的配置 [[email protected] h

mysql配置主从复制

                               主从复制 一.主从复制的工作原理 Mysql在Master与slave之间实现整个复制的过程由3个线程来完成的,其中两个线程(SQL线程和IO线程)在 Slave端,另外一个线程(IO)在Master端   要实现Mysql的复制必须首先打开Master端的binary log(也就是二进制日志)否则无法实现.  Mysql复制基本过程如下:    (1)Slave上面的IO 线程链接上Master,并且请求指定日志文件的位置(或者 

mysql配置主从复制 第一篇

安装好一个mysql到D盘.然后把D盘的mysql文件夹复制到另外一个盘.我这里选择E盘 之后修改 根目录下的 my.ini 端口号 [mysqld]port = 3307 ps:一定要和另外一个区分开. 安装服务 mysqld install mysql 启动mysql服务 net start mysql 删除mysql服务步骤: mysql\bin\mysql -remove  移除服务 如果出现这种情况. 已经安装好mysql服务,启动其中的一个服务可以成功,就是不能启动两个,这时候你该

Amazon EC2安装mysql多实例并配置主从复制

1.MySQL安装: EC2直接使用yum安装mysql非常方便: yum install mysql mysql-server mysql-libs 此处安装了三个包 完事之后能够直接使用 service mysqld start 启动mysql服务 改动root密码: mysqladmin -u root -p password "root" 2.使用mysqld_multi安装多实例mysql: vim /etc/my.cnf 加入实例的配置信息 [mysqld] datadir

mysql配置主从复制 第二篇

经过查询资料,终于把mysql主从复制搞定了.此版本是mysql5.0的. 好了,开始说步骤. 首先,上篇已经说过了,需要复制一份安装文件到另外一个盘.接下来修改注册表. 好了,完了之后,我们修改mysql根目录下的my.ini文件. 当然,修改之前你需要备份一下.省的以后启动不起来. ----------------------------------------- 首先修改你要配置的主数据库的my.ini ----------------------------------------- [

redis配置主从复制

redis主从复制 配置主从复制 ./redis-server 命令,如果后面不附加参数,它是按默认配置来启动 redis 服务的,其实它后面还可以附加一个配置文件路径的参数.在redis根目录下有一个redis.conf文件,可以直接使用这个文件来配置启动server ./redis-server ./redis.conf windows的对应就是 redis-server.exe redis.windows.conf 启动服务器 master slave-1 slave-2 启动客户端 配置