Home Database Mysql Tutorial MySQL5.5各架构复制

MySQL5.5各架构复制

Jun 07, 2016 pm 05:21 PM
mysql master-slave replication

实现主服务器和从服务器之间的数据复制,关于mysql的安装这里不在重复叙述,如有需要可参考其他文档,这里假设两个节点的服务器已

本文档将要介绍的内容:

    1、mysql的主从复制的配置
    2、配置半同步
    3、基于SSL的复制
    4、复制过滤
    5、主主模型
 
一、系统环境
 
master: 192.168.56.101
slave:  192.168.56.102
基于MySQL-5.5.24
实现主服务器和从服务器之间的数据复制,关于mysql的安装这里不在重复叙述,如有需要可参考其他文档,这里假设两个节点的服务器已经安装完成并能够正常启动。
 
二、配置的mysql主从复制
 
1、配置主服务器
 
 
1.1、编辑MySQL主配置文件
[root@master ~]# vim /etc/my.cnf    //编辑配置文件确保有以下两行
 
log-bin=mysql-bin //定义开启二进制日志
server-id       = 1 //定义server-id,主从服务器的id不能一样
 
1.2、建立具有复制权限的用户
[root@master ~]# /usr/local/mysql/bin/mysql -uroot -p
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO cpmysql@'192.168.56.102' IDENTIFIED BY 'cpmysql'; //创建cpmysql用户并设置密码为cpmysql
mysql> FLUSH PRIVILEGES;    //刷新授权表
 
查看当前使用的二进制文件和Posotions数值,后边在从服务器上要设置这两个值
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      358 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.05 sec)
 
 
2、配置从服务器
 
2.1、编辑MySQL主配置文件
[root@slave ~]# vim /etc/my.cnf
 
#log-bin=mysql-bin //可选,关闭二进制日志文件
server-id       = 11 //定义server-id不能和主服务器相同
relay-log=mysql-relay //开启中继日志且名称为mysql-relay
 
[root@slave ~]# service mysqld restart  //重新启动mysql以使新配置生效
[root@slave ~]# /usr/local/mysql/bin/mysql -u root -p //以root用户登录mysql
确认relay_log已开启:
mysql> SHOW GLOBAL VARIABLES LIKE 'relay_log';
+---------------+-------------+
| Variable_name | Value       |
+---------------+-------------+
| relay_log     | mysql-relay |
+---------------+-------------+
1 row in set (0.00 sec)
 
确认server_id配置生效其直不能与主服务器相同
mysql> SHOW GLOBAL VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 11    |
+---------------+-------+
1 row in set (0.00 sec)
 
2.2、配置主服务器相关参数
mysql> CHANGE MASTER TO MASTER_HOST='192.168.56.101',MASTER_USER='cpmysql',MASTER_PASSWORD='cpmysql',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=358;
说明:MASTER_LOG_FILE和MASTER_LOG_POS参数的值要和上边在主服务器上查询到的值一致。
 
启动从服务器进程
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
 
查询从服务器状态,能看到Slave_IO_Running和Slave_SQL_Running两个进程运行状态为Yes
mysql> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.56.101
                  Master_User: cpmysql
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 358
               Relay_Log_File: mysql-relay.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
     ...
如果出现其他异常情况造成不能启动,可查看mysql的错误日志,里边有详细的错误信息,例如这里为/mysqldata/slave.err
 
3、测试主从复制配置是否成功
 
在主服务器上创建一个数据库testdb
[root@master ~]# /usr/local/mysql/bin/mysql -u root -p
mysql> CREATE DATABASE testdb;
Query OK, 1 row affected (0.01 sec)
 
在从服务器上查看是否已经成功复制过来
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| testdb             |
+--------------------+
5 rows in set (0.05 sec)
可以看到已经成功复制。
 
4、一些建议配置
 
4.1、在主服务器上开启随时同步二进制日志至文件中,默认主服务器生成的二进制日志先放在缓存中,而从服务器需要靠主服务器上生成的二进制文件来保持和主服务器的一致,所以应该让主服务器产生二进制文件后立即同步至二进制日志文件中。
 
修改MySQL的主配置文件my.cnf添加如下行:
[root@master ~]# vim /etc/my.cnf
 
sync_binlog=1
 
[root@master ~]# service mysqld restart    //重启mysql服务使配置生效
在主服务器上查询参数是否生效
mysql> SHOW GLOBAL VARIABLES LIKE 'sync_binlog';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sync_binlog   | 1     |
+---------------+-------+
1 row in set (0.00 sec)
 
4.2、适用于innodb引擎,使没一次产生的事务日志同步到磁盘之后才返回成功,这样可以有助于保证事务日志的安全性,避免因为特殊原因造成事务日志的丢失,但这样也会降低在执行大量需要记录事务日志操作时的执行速度。
 
修改Mysql的主配置文件my.cnf添加如下行:
[root@master ~]# vim /etc/my.cnf
 
innodb_flush_logs_at_trx_commit=1
 
4.3、设置从服务器为只读,避免误操作造成主从服务器的数据不一致
 
[root@slave ~]# vim /etc/my.cnf
 
read_only=1
 
5、如果主服务器运行了一段时间,从服务器为新增的服务器时就不能根据以上方法来配置了,需要现在主服务器上备份:
 
先在主服务器上给mysql施加读锁
mysql> FLUSH TABLES WITH READ LOCK; 
Query OK, 0 rows affected (0.00 sec)
 
通过逻辑卷创建快照备份mysql,这里假设mysql的数据目录的挂载的设备为/dev/mysqlvg/mysqllv
[root@master ~]# lvcreate -L 50M -s -p r -n mysql-snap /dev/mysqlvg/mysqllv
 
在逻辑卷上创建好快照之后查看当前mysqld的二进制文件及Position的数值,完成后立即释放之前施加的读锁
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      478 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
释放读锁:
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
 
挂载刚创建的逻辑卷快照并备份至从服务器
[root@master ~]# mount /dev/mysqlvg/mysql-snap /mnt
[root@master ~]# tar cf allmysql.tar /mnt/ //如果数据文件过大就压缩
 
拷贝该归档文件至从服务器,把内容覆盖至从服务器mysql的数据目录,并移除逻辑卷快照
[root@master ~]# umount /mnt
[root@master ~]# lvremove /dev/mysqlvg/mysql-snap  
 
其他步骤与上边的从服务器配置相同,参考-->2.2、配置主服务器相关参数,,注意替换:MASTER_LOG_FILE和MASTER_LOG_POS参数的值为释放读锁时查看到的信息。
 
至此就可以实现主从复制了。

linux

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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

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)

Data backup and failure recovery: Discussion on the importance of MySQL master-slave replication in cluster mode Data backup and failure recovery: Discussion on the importance of MySQL master-slave replication in cluster mode Sep 08, 2023 am 09:03 AM

Data backup and failure recovery: Discussion on the importance of MySQL master-slave replication in cluster mode Introduction: In recent years, with the continuous growth of data scale and complexity, database backup and failure recovery have become particularly important. In distributed systems, MySQL master-slave replication is widely used in cluster mode to provide high availability and fault tolerance. This article will explore the importance of MySQL master-slave replication in cluster mode and give some code examples. 1. Basic principles and advantages of MySQL master-slave replication MySQL master-slave replication is a general

Cope with high concurrency with ease: Analysis of the performance advantages of MySQL master-slave replication as a cluster technology Cope with high concurrency with ease: Analysis of the performance advantages of MySQL master-slave replication as a cluster technology Sep 10, 2023 pm 03:48 PM

Cope with high concurrency with ease: Analysis of the performance advantages of MySQL master-slave replication as a cluster technology. With the rapid development of the Internet, user visits to websites and applications have shown an explosive growth trend. In this high-concurrency situation, how to ensure system stability and performance has become an important task for every developer and system administrator. In databases, MySQL master-slave replication technology is widely used and has become one of the effective solutions to deal with high concurrency. This article will explore the performance advantages of MySQL master-slave replication as a cluster technology. first

Decrypting MySQL master-slave replication: revealing its key implementation mechanism in cluster mode Decrypting MySQL master-slave replication: revealing its key implementation mechanism in cluster mode Sep 10, 2023 am 09:28 AM

Decrypting MySQL master-slave replication: Revealing its key implementation mechanism in cluster mode Introduction: In modern database systems, high availability and flexibility of data are very important. As an open source relational database management system, MySQL has a wide range of applications in meeting user needs. MySQL's master-slave replication is a very critical part of the MySQL database architecture and is used to achieve data backup and high availability. This article will focus on revealing the key implementation mechanism of MySQL master-slave replication, especially in cluster mode.

Optimizing database performance: The best way to use MySQL master-slave replication in cluster technology Optimizing database performance: The best way to use MySQL master-slave replication in cluster technology Sep 10, 2023 am 08:24 AM

Optimizing database performance: The best way to use MySQL master-slave replication in cluster technology Abstract: With the rapid development of the Internet, database performance issues have become the focus of various enterprises and organizations. MySQL master-slave replication technology plays an important role in solving database performance bottlenecks. This article will introduce the concepts and principles of MySQL master-slave replication, as well as the best use methods in cluster technology, to help readers optimize database performance. 1. Introduction As the amount of data continues to increase, database performance problems have become increasingly prominent. How to optimize numbers

Is MySQL master-slave replication a cluster technology or a load balancing technology? Analysis and difference Is MySQL master-slave replication a cluster technology or a load balancing technology? Analysis and difference Sep 10, 2023 am 08:40 AM

Is MySQL master-slave replication a cluster technology or a load balancing technology? Summary of analysis and differences: MySQL master-slave replication is a database replication technology used to synchronize database data on multiple servers. This article will analyze and distinguish the differences between MySQL master-slave replication, cluster technology and load balancing technology in terms of technical principles, application scenarios and functional characteristics. Introduction: In modern Internet applications, high availability and scalability of databases are crucial. MySQL master-slave replication is one of the common solutions, however,

Detailed explanation of the functions and advantages of MySQL master-slave replication in cluster technology Detailed explanation of the functions and advantages of MySQL master-slave replication in cluster technology Sep 09, 2023 am 09:03 AM

Detailed explanation of the functions and advantages of MySQL master-slave replication in cluster technology Introduction MySQL is a powerful relational database management system that is widely used in various large-scale websites and applications. As the amount of data increases and access requests increase, the pressure on a single MySQL server gradually increases. In order to improve the performance and reliability of the database, people begin to adopt cluster technology, among which MySQL master-slave replication is one of the commonly used technologies. means. MySQL master-slave replication principle MySQL master-slave replication refers to the

Uncovering the potential of cluster technology in MySQL master-slave replication: Comparative evaluation of open source solutions and commercial solutions Uncovering the potential of cluster technology in MySQL master-slave replication: Comparative evaluation of open source solutions and commercial solutions Sep 08, 2023 pm 07:16 PM

Tapping into the cluster technology potential of MySQL master-slave replication: Comparative evaluation of open source solutions and commercial solutions. With the continuous development of Internet business and the increasing amount of data, the demand for database cluster solutions has become increasingly strong. MySQL master-slave replication technology just meets this demand. It can process the read and write operations of the database separately on multiple nodes, improving the read performance and availability of the database. This article will explore the potential of cluster technology in MySQL master-slave replication, and conduct a comparative evaluation of open source solutions and commercial solutions.

Understand the cluster features and non-load balancing application scenarios of MySQL master-slave replication Understand the cluster features and non-load balancing application scenarios of MySQL master-slave replication Sep 11, 2023 am 11:04 AM

With the rapid development of the Internet, the amount of data in application systems is increasing, and the requirements for database performance and reliability are also getting higher and higher. As one of the most commonly used open source relational databases, MySQL has high performance and stability and is widely used in various enterprise-level applications. As a commonly used data replication solution, MySQL master-slave replication can improve data reliability and read and write performance, and is widely used in large-scale data applications. The cluster feature of MySQL master-slave replication refers to synchronizing the data of the master database through the replication mechanism.

See all articles