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. 第4章 springboot热部署 4-1 SpringBoot 使用devtools进行热部署

    /imooc-springboot-starter/src/main/resources/application.properties #关闭缓存, 即时刷新 #spring.freemarker.c ...

  2. NLTK与NLP原理及基础

    参考https://blog.csdn.net/zxm1306192988/article/details/78896319 以NLTK为基础配合讲解自然语言处理的原理  http://www.nlt ...

  3. cocos2dx中的内存管理方式

    转载:http://www.cocoachina.com/bbs/read.php?tid=195219 今天看了一下cocos2dx的内存管理机制,有些地方不太好理解搞了挺长的时间,现在感觉自己理解 ...

  4. CPU时钟是个什么东西

    CPU时钟说的是频率生成器,可能生成的是方波也可能是其它波. 频率生成器那是什么东西?这教要讲到压电效应了. 压电效应这个词是一个统称,它包括正压电效应和逆压电效应. 传说在很久以前有一个科学家发现了 ...

  5. bzoj1787 紧急集合

    传送门 题目 Input Output 分析 看到这个题不难想到倍增LCA,然后我们考虑如何计算.我们分别求出3个点中任意两点的LCA,为了走的步数最少所以肯定是先有两个点相遇然后另一个点走的它们相遇 ...

  6. beforeFilter()

    在控制器每个动作之前执行,可以方便地检查有效的会话,或者检查用户的权限. function beforeFilter() { parent::beforeFilter(); if(empty($thi ...

  7. java 英文笔记

    JDBC涉及到的单词 Driver 驱动器 DriverManager (Manager 处理者,经理,管理人; 干事,理事; 〈美〉(政党等的)领袖; 策士,干才,干练的人;) create Sta ...

  8. PostgreSQL 设置主键的序列值

    1. 问题的提出 PostgreSQL定义TABLE时,主键的字段类型可以设定为自增类型serial,即插入每条记录时,主键的值自动加1.但是,当插入数据的时候指定了具体的主键值,例如主键值从0到50 ...

  9. SqlServer压缩数据库日志

    )--数据库名称 )--数据库日志文件名称 --替换成自己的文件名称 select @dbName='dbname' select @dbNamelog='dbname_log' ) set @sql ...

  10. [SinGuLaRiTy] 2017-07-22 NOIP2017 模拟赛

    [SInGuLaRiTy-1029] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. <全是看看代码就会的水题,偷个懒不单独写题解了~& ...