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. sqlserver 查询int类型 in (字符串) 报转换int类型出错的问题

    , , '') ) AS c_departNames FROM t_user AS A LEFT JOIN t_role AS B ON A.c_roleId=B.c_roleId 用 CHARIND ...

  2. Winform状态栏控件中Label靠右显示的方法

    设计器:   代码: 在Form_Load事件中添加 : statusStripMain.LayoutStyle= ToolStripLayoutStyle.HorizontalStackWithOv ...

  3. 提示crontab command not found的解决方法

    操作步骤   1. 确认crontab是否安装:   执行 crontab 命令如果报 command not found,就表明没有安装   2. 安装 crontab   执行 yum insta ...

  4. solr4.8中集成mmseg4j1.9.1

    要想在Solr中整合mmseg4j其实很容易,只需要如下几个步骤 1.下载(https://code.google.com/p/mmseg4j/downloads/list)并解压mmseg4j-1. ...

  5. [cerc2017J]Justified Jungle

    题目大意:删去k条边,树变为相等个点的连通分量,求所有正整数k. 解题关键:树dp,不必求因子. #include<bits/stdc++.h> using namespace std; ...

  6. JS对表单的操作

    JS对表单中的style的操作,包括复选框技术 废话不多说直接上文件代码!!! 功能:全选\反选,鼠标监测变颜色 <html> <head> <meta charset= ...

  7. iOS 判断设备是否越狱了

    #import "PrisonBreakCheck.h" @implementation PrisonBreakCheck /** * 判断iPhone是否越狱了 */ +(BOO ...

  8. svn冲突问题详解 SVN版本冲突解决详解

    svn冲突问题详解 SVN版本冲突解决详解 (摘自西西软件园,原文链接http://www.cr173.com/html/46224_1.html) 解决版本冲突的命令.在冲突解决之后,需要使用svn ...

  9. MyBatis基本查询、条件查询、查询排序

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  10. 《Head First Servlets & JSP》-13-过滤器和包装器

    过滤器是什么 与servlet非常类似,过滤器就是java组件,请求发送到servlet之前,可以用过滤器截获和处理清求,另外 servlet结束工作之后,在响应发回给客户之前,可以用过滤器处理响应. ...