MySQL / MariaDB主主(互为主从)

这篇博客详细介绍了如何配置MySQL/MariaDB的主从部署,并进一步讲解如何实现主主复制,包括在主库和从库上的配置步骤,以及同步测试。主要涉及授权、配置文件修改、主从状态检查等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Mysql主从部署

               master: 192.168.68.136  (slave)

               slave:    192.168.68.137  (master)

主库master端配置 (136)

# 安装好mysql/mariadb数据库:

yum instal mariadb mariadb-server -y

 

# 修改配置文件/etc/my.cnf,在[mysqld]指令段添加以下行:

server-id=1                              #在同一个主从复制环境中server-id必须保持唯一

log-bin=jfedu-bin                   #开启并指定log-bin文件

 

# 启动数据库服务:

systemctl start mariadb

 

# 查看mysql进程:

ps-ef|grep mariadb

 

# 查看mysql端口:

 netstat -ntlp |grep 3306

 

查看配置是否生效

# 通过mysql直接进入数据库:

[root@localhost ~]# mysql

 

# 验证二进制功能是否开启:查看log_bin和sql_log_bin是否均为on;

MariaDB [(none)]> show variables like "%log_bin";

 

授权从库---访问账号-tongbu(123456)

MariaDB [(none)]> grant replication slave on *.* to "tongbu"@"192.168.68.137" identified by "123456";

MariaDB [(none)]> flush privileges;

 

# replication slave是MySQL数据库中表示复制的权限名称,

# "tongbu"@"192.168.68.137"则是表示从数据库服务器192.168.68.137登

# 陆到主数据库服务器时用到的用户名称tongbu(用户会自动帮忙创建 ),123456表示登陆密码。

这样,我们就在主数据库服务器上创建了一个可以进行复制的用户账号了。然后我们启动主数据库服务器就可以了

 

查询主库状态

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

*************************** 1. row ***************************

            File: jfedu-bin.000003

        Position: 476

    Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

 

从库slave端部署(137)

# 安装mysql服务:

yum install mariadb mariadb-server -y

 

# 修改mysql配置文件,在[mysqld]字段下添加以下行:

server-id=2

 

# 启动数据库服务:

systemctl start mariadb

 

登录数据库

[root@localhost ~]# mysql             或       mysql -uroot -p

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.64-MariaDB MariaDB Server

...

指定master

MariaDB [(none)]> change master to master_host="192.168.68.136", master_user="tongbu", master_password="123456", master_log_file=" jfedu-bin.000003", master_log_pos=476;

或格式:

MariaDB [(none)]> change master to

    -> master_host="192.168.68.136",

    -> master_user="tongbu",

    -> master_password="123456",

    -> master_log_file="jfedu-bin.000003",

    -> master_log_pos=476;

 

启动slave进程

MariaDB [(none)]> slave start;

Query OK, 0 rows affected (0.01 sec)

查看slave同步状态

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

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.75.80

                  Master_User: tongbu

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: jfedu-bin.000003

          Read_Master_Log_Pos: 632

               Relay_Log_File: mariadb-relay-bin.000002

                Relay_Log_Pos: 685

        Relay_Master_Log_File: jfedu-bin.000003

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

  

# Slave_IO_Running与Slave_SQL_Running均为yes,表示同步正常!

 

以上配置是实现主从数据库。。如果要实现主主,则要进行下面操作

master端配置(137的操作(从==》主))

# 修改配置文件,在[mysqld]指令块下添加如下行:

server-id=2

log-bin=jfedu2-bin

#重启数据库

systemctl restart mariadb

#查看master状态

MariaDB [(none)]> show master status;

#授权从库(我们一般实现的是数据的交叉同步)

MariaDB [(none)]> grant replication slave on *.* to "tongbu"@"192.168.68.136" identified by "123456";

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

slave端配置(136(主==》从))

MariaDB [(none)]> change master to

    -> master_host="192.168.68.137",

    -> master_user="tongbu",

    -> master_password="123456",

    -> master_log_file="jfedu2-bin.000001",

    -> master_log_pos=503;

MariaDB [(none)]> slave start;

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

 

同步测试

主库

主库端授权所有远程主机访问权限给root

# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

# flush privileges;

 

# 在主库创建一个数据库:

MariaDB [(none)]> create database jfedu2 charset=utf8;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| jfedu2              |

| mysql              |

| performance_schema |

| test               |

+--------------------+

# 在从库查看:

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| jfedu2              |

| mysql              |

| performance_schema |

| test               |

+--------------------+

5 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值