The following tutorial aims to provide you a simple step-by-step guide for setting up MySQL (Master-Slave) Replication in RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8 and Fedora 17,16,15,14,13,12 using latest MySQL version.

This guide is specially written for CentOS 6.9 Operating System, but also work with older version of Linux distributions with MySQL 5.x.

The MySQL Replication is very useful in terms of Data Security, Fail-over Solution, Database Backup from Slave, Analytics etc. We use the following things to carry the replication process. In your scenario it would be different.

  1. Working Linux OS like CentOS 6.9
  2. Master and Slave are CentOS 6.9 Linux Servers.
  3. Master IP Address is: 192.168.0.70.
  4. Slave IP Address is: 192.168.0.71.
  5. Master and Slave are on the same LAN network.
  6. Master and Slave has MySQL version installed.
  7. Master allow remote MySQL connections on port 3306.

We have two servers, one is Master with IP (192.168.0.70) and other is Slave as (192.168.0.71). We have divided the setup process in two STEPS to make things easier for you, In STEP 1 we will configure Master server and in Phase II with Slave server. Let’s start the replication setup process.

STEP 1 【Configure Master Server (192.168.0.70) for Replication】

  1) Install a MySQL in Master Server 

  # yum install mysql-server mysql

  2) Configure a MySQL in Master Server. edit /etc/my.cnf configuration.

  3) Add the following entries under [mysqld] section and don’t forget to replace "your database name" with database name that you would like to replicate on Slave.  

  server-id = 1
  binlog-do-db=your database name
  relay-log = /var/lib/mysql/mysql-relay-bin
  relay-log-index = /var/lib/mysql/mysql-relay-bin.index
  log-error = /var/lib/mysql/mysql.err
  master-info-file = /var/lib/mysql/mysql-master.info
  relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
  log-bin = /var/lib/mysql/mysql-bin

  4) Restart the MySQL service.

  # /etc/init.d/mysqld restart

  5) Login into MySQL as root user and create the slave user and grant privileges for replication. Replace slave_user with user and your_password with password.

  # mysql -u root -p
  mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'your_password';
  mysql> FLUSH PRIVILEGES;
  mysql> FLUSH TABLES WITH READ LOCK;
  mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 11128001 | your database | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
  mysql> exit;

  Please write down the File (mysql-bin.000003) and Position (11128001) numbers, we required these numbers later on Slave server. Next apply READ LOCK to databases to export all the database and master database information with mysqldump command.

  # mysqldump -u root -p --all-databases --master-data > /root/dbdump.db

  Once you’ve dump all the databases, now again connect to mysql as root user and unlcok tables.

  mysql> UNLOCK TABLES;
  mysql> quit;

  Upload the database dump file on Slave Server (192.168.1.2) using SCP command.

  # scp /root/dbdump.db root@192.168.1.2:/root/

  That’s it we have successfully configured Master server, let’s proceed to Step 2 section.


STEP 2 【Configure Slave Server (192.168.0.71) for Replication】

  1) we do the installation of MySQL, setting up Replication and then verifying replication.  Install a MySQL in Slave Server,If you don’t have MySQL installed, then install it using YUM command.

  # yum install mysql-server mysql
  2) Configure a MySQL in Slave Server,edit  /etc/my.cnf configuration .
  server-id = 2
  master-host=192.168.0.70
  master-connect-retry=60
  master-user=slave_user
  master-password=your password
  replicate-do-db=your database name
  relay-log = /var/lib/mysql/mysql-relay-bin
  relay-log-index = /var/lib/mysql/mysql-relay-bin.index
  log-error = /var/lib/mysql/mysql.err
  master-info-file = /var/lib/mysql/mysql-master.info
  relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
  log-bin = /var/lib/mysql/mysql-bin

  Login into MySQL as root user and stop the slave. Then tell the slave to where to look for Master log file, that we have write down on master with SHOW MASTER STATUS; command as File (mysql-bin.000003) and Position (11128001) numbers. You must change 192.168.0.70 to the IP address of the Master Server, and change the user and password accordingly.

  # mysql -u root -p
  mysql> slave stop;
  mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.70', MASTER_USER='slave_user', MASTER_PASSWORD='your password';
  mysql> slave start;
  mysql> show slave status\G

  display:

    Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.70
Master_User: slave_user
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: mysql-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: your database
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
row in set (0.00 sec)
DONE!!!!

参考 https://www.tecmint.com/how-to-setup-mysql-master-slave-replication-in-rhel-centos-fedora/

How to Setup MySQL (Master-Slave) Replication in CentOS的更多相关文章

  1. Windows下搭建MySQL Master Slave[转]

    Windows下搭建MySQL Master Slave 一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用k ...

  2. Windows下搭建MySQL Master Slave

    一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用keepalived这个HA工具,但是我们可以接受人工进行切 ...

  3. MySQL master/slave 模式

    1 .复制 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并重 ...

  4. mongodb - Master Slave Replication

    master-slave复制模式大多场景下都被replicat sets代替.官方也建议使用replicat sets. master-slave复制不支持自动failover. master-sla ...

  5. mysql (master/slave)复制原理及配置

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  6. MySQL的Master/Slave群集安装和配置

    本文介绍MySQL的Master/Slave群集安装和配置,版本号安装最新的稳定版GA 5.6.19. 为了支持有限HA.我们用Master/Slave读写简单孤立的集群.有限HA这是当Master不 ...

  7. mysql 主从配置(master/slave)

    1.  在每台服务器上创建复制账号(也可以只在master上创建用户,这里配置两个是为了方便以后切换) 备库运行的I/O县城需要建立一个到主库的TCP/IP连接,所以必须在主库创建一个用户,并赋予合适 ...

  8. MySQL 5.7 Replication 相关新功能说明

    背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...

  9. MySQL show slave status命令参数

    ? Slave_IO_State SHOW PROCESSLIST输出的State字段的拷贝.SHOW PROCESSLIST用于从属I/O线程.如果线程正在试图连接到主服务器,正在等待来自主服务器的 ...

随机推荐

  1. 第2章 构建springboot工程 2-1 构建SpringBoot第一个demo

    以后的趋势肯定是以一个微服务为主导的, Spring-Boot的指导 Maven整个环境构建之前的整个项目其实是一个很普通的J2SE项目,它构建完之后会进行重构,重构为Maven的一个项目路径.可以看 ...

  2. ROS Learning-020 learning_tf-04(编程)让turtle2 海龟跟随turtle1海龟,并绕着 turtle1海龟转圈 (Python版)

    ROS Indigo learning_tf-04 (编程)让 turtle2 海龟跟随 turtle1 海龟,并绕着 turtle1 海龟转圈 (Python版) 我使用的虚拟机软件:VMware ...

  3. GCD 学习(四) dispatch_group

    如果想在dispatch_queue中所有的任务执行完成后在做某种操作,在串行队列中,可以把该操作放到最后一个任务执行完成后继续,但是在并行队列中怎么做呢.这就有dispatch_group 成组操作 ...

  4. Entity Framework Tutorial Basics(2):What is Entity Framework?

    What is Entity Framework? Writing and managing ADO.Net code for data access is a tedious and monoton ...

  5. SDUT 3373 数据结构实验之查找一:二叉排序树

    数据结构实验之查找一:二叉排序树 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 对应给定的一 ...

  6. Bulma 源码解析之 .container 类

    Bulma 的 .container 类是这样实现的. .container position: relative // 不设置桌面以下设备的 container +desktop margin: 0 ...

  7. 关于 windows mobile 进程操作的方法

    #region Process class /// <summary> /// Summary description for Process. /// </summary> ...

  8. 【转载】在AspNetCore 中 使用Redis实现分布式缓存

    原文地址:https://www.cnblogs.com/szlblog/p/9045209.html AspNetCore 使用Redis实现分布式缓存 上一篇讲到了,Core的内置缓存:IMemo ...

  9. THINKPHP 框架的模板技术

    //echo C('name'); App/Action/IndexAction.class.php文件夹下的 URL模式 //输出URL模式//echo C('URL_MODEL'),'<br ...

  10. (Python OpenGL)【4】Uniform变量 PyOpenGL

    (Python OpenGL) 原文:http://ogldev.atspace.co.uk/www/tutorial05/tutorial05.html(英文) __author__ = " ...