Home Database Mysql Tutorial 基于Multi Master MySQL(MMM)实现Mariadb10读写分离

基于Multi Master MySQL(MMM)实现Mariadb10读写分离

Jun 07, 2016 pm 05:22 PM
mariadb

----本文大纲简介资源配置拓扑图实现过程====================一、简介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

    三、拓扑图

    wKiom1NbD-vBYTbaAAH9IMbCsBM351.bmp

    四、实现过程

    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

    授权用户

    MariaDB [(none)]> grant replication slave,replication client on *.* to 'repluser'@'192.168.1.112' identified by 'replpass'; Query OK, 0 rows affected (0.12 sec) MariaDB [(none)]> grant replication slave,replication client on *.* to 'repluser'@'192.168.1.113' identified by 'replpass'; Query OK, 0 rows affected (0.00 sec)

    查看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

    授权用户

    MariaDB [(none)]> grant replication slave,replication client on *.* to 'repluser'@'192.168.1.109' identified by 'replpass'; Query OK, 0 rows affected (0.15 sec)

    查看binlog日志标记

    MariaDB [(none)]> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000007 | 548 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)

    连接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)
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

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

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    Connect to MariaDB database using PHP Connect to MariaDB database using PHP May 17, 2023 am 08:24 AM

    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 connect to MariaDB database using PDO How to connect to MariaDB database using PDO Jul 28, 2023 pm 02:49 PM

    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

    An article explaining the difference between MariaDB and MySQL in detail An article explaining the difference between MariaDB and MySQL in detail Mar 09, 2023 am 11:39 AM

    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 Docker Compose, Nginx, and MariaDB: Monitoring and Optimizing Deployed PHP Applications Best Practices for Docker Compose, Nginx, and MariaDB: Monitoring and Optimizing Deployed PHP Applications Oct 12, 2023 pm 02:19 PM

    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

    How to install MariaDB database on Debian 12 How to install MariaDB database on Debian 12 Feb 20, 2024 pm 02:24 PM

    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

    Optimize network performance of PHP applications using Docker Compose, Nginx and MariaDB Optimize network performance of PHP applications using Docker Compose, Nginx and MariaDB Oct 12, 2023 pm 12:49 PM

    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 Docker Compose, Nginx and MariaDB: best practices for deploying PHP applications The perfect combination of Docker Compose, Nginx and MariaDB: best practices for deploying PHP applications Oct 12, 2023 am 11:24 AM

    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 of PHP applications using Docker Compose, Nginx and MariaDB Optimizing performance issues of PHP applications using Docker Compose, Nginx and MariaDB Oct 12, 2023 pm 12:55 PM

    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

    See all articles