基于Multi Master MySQL(MMM)实现Mariadb10读写分离
----本文大纲简介资源配置拓扑图实现过程====================一、简介MMM即Master-MasterReplicationManagerforMySQL(mysql主主复制管理器)关于mysql主主复制
方案优缺点
主机属性
系统名字角色主机名ip地址关系
Centos6.5x86_64DB1
Masteressun.mariadb1.com192.168.1.109与DB2互为主从
Centos6.5x86_64DB2Masteressun.mariadb2.com192.168.1.112
与DB1互为主从
Centos6.5x86_64DB3Slaveessun.mariadb3.com192.168.1.113
DB1的从库
Centos6.5x86_64MonitorMonitoressun.monitor.com192.168.1.116
监控所有主机
虚拟ip(VIP)
DB1 192.168.1.109 `192.168.1.24
DB2 192.168.1.112 192.168.1.24,192.168.1.22
DB3 192.168.1.113 192.168.1.23
三、拓扑图
四、实现过程
1、配置DB1
修改配置文件/etc/my.cnf,添加如下语句
server-id=1 log_bin=/mariadb/data/mysql-bin binlog_format=row log-slave-updates sync_binlog=1 auto_increment_increment=2 auto_increment_offset=1授权用户
查看binlog日志标记
MariaDB [(none)]> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 756 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)2、配置DB2
修改配置文件/etc/my.cnf,添加如下语句
log-bin=mysql-bin binlog_format=ROW log-slave-updates sync_binlog=1 auto_increment_increment=2 auto_increment_offset=2 server-id=2授权用户
查看binlog日志标记
连接DB1
MariaDB [(none)]> change master to master_host='192.168.1.109',master_user='repluser',master_password='replpass',master_log_file='mysql-bin.000003',master_log_pos=756; Query OK, 0 rows affected (0.06 sec) MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.06 sec) MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.109 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 756 Relay_Log_File: essun-relay-bin.000002 Relay_Log_Pos: 535 Relay_Master_Log_File: mysql-bin.000003 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: 756 Relay_Log_Space: 832 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: Yes Master_SSL_CA_File: /etc/slave/cacert.pem Master_SSL_CA_Path: Master_SSL_Cert: /etc/slave/mysql.crt Master_SSL_Cipher: Master_SSL_Key: /etc/slave/mysql.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 Master_SSL_Crl: /etc/slave/cacert.pem Master_SSL_Crlpath: Using_Gtid: No Gtid_IO_Pos: 1 row in set (0.00 sec)3、配置DB3
修改配置文件/etc/my.cnf添加如下语句
server-id=3 log-bin=mysql-bin log-slave-updates relay-log=relay-log-bin连接DB1
MariaDB [(none)]> change master to master_host='192.168.1.109',master_user='repluser',master_password='replpass',master_log_file='mysql-bin.000003',master_log_pos=756; Query OK, 0 rows affected (0.03 sec) MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.109 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 756 Relay_Log_File: relay-log-bin.000002 Relay_Log_Pos: 535 Relay_Master_Log_File: mysql-bin.000003 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: 756 Relay_Log_Space: 830 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: Yes Master_SSL_CA_File: /etc/slave/cacert.pem Master_SSL_CA_Path: Master_SSL_Cert: /etc/slave/mysql.crt Master_SSL_Cipher: Master_SSL_Key: /etc/slave/mysql.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 Master_SSL_Crl: /etc/slave/cacert.pem Master_SSL_Crlpath: Using_Gtid: No Gtid_IO_Pos: 1 row in set (0.00 sec)
Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

MariaDB is an open source relational database management system, which is a branch of MySQL. PHP, as an open source server-side scripting language, is widely used in web development. In many web development projects, you need to use PHP to connect to the MariaDB database in order to store and retrieve data in the web application. This article will introduce how to use PHP to write code to connect to the MariaDB database. 1. Install the MariaDB server and use PHP to connect to Maria.

How to use PDO to connect to MariaDB database 1. Introduction PDO (PHPDataObjects) is a lightweight abstraction layer used in PHP to access the database. It provides developers with a unified set of interfaces to connect and operate different types of databases, including MariaDB, MySQL, SQLite, etc. This article will introduce how to use PDO to connect to the MariaDB database and give sample code. 2. Install and configure using PDO to connect to MariaDB

This article brings you relevant knowledge about MariaDB and MySQL. It mainly talks about the differences between MariaDB and MySQL. Friends who are interested can take a look at it together. I hope it will be helpful to everyone.

Best Practices for DockerCompose, Nginx and MariaDB: Monitoring and Optimization of Deployed PHP Applications Introduction: In modern application development, containerization has become a popular way to help us better manage and deploy applications. DockerCompose is a tool for defining and running multiple containers, which simplifies the application deployment and management process. This article will introduce how to use DockerCompose to combine Nginx and

MariaDB is an open source multi-threaded relational database management system and a replacement for MySQL. MariaDB is the default replacement for MySQL in Debian. This tutorial explains how to install MariaDB on Debian12. Preparation conditions 1. A VPS virtual machine with Debian12 installed (it is recommended that you purchase an Alibaba Cloud VPS or Tencent Cloud VPS virtual host. If you prefer foreign servers, it is recommended that you try VPS on Vultr, and you will receive a $50 trial experience when you register) , very cost-effective), of course you can also use it on your own computer or virtual machine. 2. If you use VPS, for security reasons, it is recommended to use a non-root account, which can be done in Debian12

Introduction to optimizing network performance of PHP applications using DockerCompose, Nginx and MariaDB: In today's Internet era, network performance is crucial to the stability and responsiveness of web applications. In order to improve the network performance of PHP applications, we can use the containerization technology DockerCompose, the efficient web server Nginx and the stable database MariaDB. This article will introduce in detail how to use these tools to optimize the network of PHP applications.

The perfect combination of DockerCompose, Nginx and MariaDB: Best practices for deploying PHP applications Introduction: In modern web application development, the use of containerization technology has become a trend. Containerization technology can package an application and its dependencies into a single container, so that the application can run in any environment that supports containerization technology. Docker is currently the most popular containerization technology, which can simplify the deployment, management and expansion of applications. For use

Optimizing Performance Issues in PHP Applications Using DockerCompose, Nginx, and MariaDB When developing and deploying PHP applications, performance issues are often encountered. To solve these problems, we can leverage DockerCompose, Nginx, and MariaDB to optimize application performance. DockerCompose is a tool for defining and managing multiple Docker containers. It helps us create and run multiple containers easily
