MariaDB 主从配置 有更新!

  益达MIM味

MariaDB主从配置

MariaDB数据库配置请查看MariaDB 10.3安装配置


MariaDB的主从的配置是整个读,写分离的核心机制所在,所以现在建立了两台新的虚拟机:server-master,server-slave关系就是slave同步master主机,本次使用的主机列表如下:

No. 主机名称 IP地址 描述
1 server-master 192.168.31.128 MariaDB服务(master)
2 server-slave 192.168.31.129 MariaDB服务(slave)

1.【server-*】一定要保证两台服务的时间是同步的,如果不同步无法实现主从配置。

2.【server-master】修改MariaDB的配置文件:

vim /etc/my.cnf.d/server.cnf

#在 [mysqld] 下面添加
server-id=129   #主节点标识,唯一
log-bin=master-bin-1
  • “log_bin=master-bin-1”:表示配置同步bin的文件名称,不同的主从关系组,名称不同;
  • “server_id=129”:定义的是MySql服务的编号,这个编号一般取IP的最后一位;
  • 保存退出后可以之即启动mysql服务:
service mysql restart  #重起服务
  • 登录到mysql数据库之中:
 mysql -uroot -phahaha
  • 查看master状态:

    show master status;
    
    > “File(server-bin-1.000001)”,是从主机必须设置的名称;
    > "Position(331):同步的节点位置;
MariaDB [(none)]> show master status ;
+---------------------+----------+--------------+------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| server-bin-1.000001 |      331 |              |                  |
+---------------------+----------+--------------+------------------+

-------------------------------------若没有问题 该部分结束-----------------------

3.【server-master】考虑到与服务器同步的安全性问题,建议建立一个新的的用户:miim

MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'miim'@'%' IDENTIFIED BY 'zsl01';
MariaDB [mysql]> FLUSH PRIVILEGES;

4.【server-slave】从节点修改配置文件:

vim  /etc/my.cnf.d/server.cnf


log-bin=salve-bin
server-id=129
relay-log=relay-bin
log-slave-updates=1
read-only=1
  • 重启服务
service mysql restart  #重起服务

5.从配置

mysql -uroot -phahaha

MariaDB [mysql]> change master to master_host='192.168.31.128',master_user='miim',master_password='zsl01',master_log_file='server-bin-1.000001',master_log_pos=331;
MariaDB [mysql]> show slave status\G;    #查看从同步状态
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: 192.168.31.128
                  Master_User: miim
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: server-bin-1.000001
          Read_Master_Log_Pos: 331
               Relay_Log_File: relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: server-bin-1.000001
             Slave_IO_Running: No   #  NO未开启同步
            Slave_SQL_Running: No
         
  • MariaDB [mysql]>start slave; #开启复制
MariaDB [mysql]> show slave status\G;    #查看从同步状态
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: 192.168.31.128
                  Master_User: miim
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: server-bin-1.000001
          Read_Master_Log_Pos: 331
               Relay_Log_File: relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: server-bin-1.000001
             Slave_IO_Running: Yes   #  Yes开启同步
            Slave_SQL_Running: Yes
         

6. 测试

  • 主节点开启远程访问
DROP DATABASE IF EXISTS zsl;
CREATE DATABASE zsl CHARACTER SET UTF8 ;
USE zsl ;
CREATE TABLE member(
   MID VARCHAR(50) ,
   NAME VARCHAR(50) ,
   age INT ,
   salary DOUBLE ,
   birthday DATE ,
   note  TEXT ,
   CONSTRAINT pk_mid PRIMARY KEY(MID)
) ;
INSERT INTO member(MID,NAME,age,salary,birthday,note) VALUES ('zsl','hello',10,2000.0,'2017-11-11','very good') ;
INSERT INTO member(MID,NAME,age,salary,birthday,note) VALUES ('admin','admin',10,2000.0,'2017-11-11','very good') ;
INSERT INTO member(MID,NAME,age,salary,birthday,note) VALUES ('guest','admin',10,2000.0,'2017-11-11','very good') ;


  • 从节点
MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zsl                |
+--------------------+

出现zsl数据库表示配置成功