How to Setup MySQL (Master-Slave) Replication in CentOS
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.
- Working Linux OS like CentOS 6.9
- Master and Slave are CentOS 6.9 Linux Servers.
- Master IP Address is: 192.168.0.70.
- Slave IP Address is: 192.168.0.71.
- Master and Slave are on the same LAN network.
- Master and Slave has MySQL version installed.
- 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的更多相关文章
- Windows下搭建MySQL Master Slave[转]
Windows下搭建MySQL Master Slave 一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用k ...
- Windows下搭建MySQL Master Slave
一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用keepalived这个HA工具,但是我们可以接受人工进行切 ...
- MySQL master/slave 模式
1 .复制 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并重 ...
- mongodb - Master Slave Replication
master-slave复制模式大多场景下都被replicat sets代替.官方也建议使用replicat sets. master-slave复制不支持自动failover. master-sla ...
- mysql (master/slave)复制原理及配置
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...
- MySQL的Master/Slave群集安装和配置
本文介绍MySQL的Master/Slave群集安装和配置,版本号安装最新的稳定版GA 5.6.19. 为了支持有限HA.我们用Master/Slave读写简单孤立的集群.有限HA这是当Master不 ...
- mysql 主从配置(master/slave)
1. 在每台服务器上创建复制账号(也可以只在master上创建用户,这里配置两个是为了方便以后切换) 备库运行的I/O县城需要建立一个到主库的TCP/IP连接,所以必须在主库创建一个用户,并赋予合适 ...
- MySQL 5.7 Replication 相关新功能说明
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...
- MySQL show slave status命令参数
? Slave_IO_State SHOW PROCESSLIST输出的State字段的拷贝.SHOW PROCESSLIST用于从属I/O线程.如果线程正在试图连接到主服务器,正在等待来自主服务器的 ...
随机推荐
- C# 设置程序session过期时间
服务器设置: 如果服务器上点击站点没有ASP这一项: 下方 角色服务 添加角色服务 安装完毕重新打开iis 点击站点 就可以看到ASP这个选项了 程序webconfig配置: <system.w ...
- 关于handler和异步任务
handler使用流程概要 首先在主线程新建一个handler实例,重写onhandlemessage(Message msg) 方法,对传过来的message进行处理 然后在子线程中完成操作,操作完 ...
- C语言基础问题总结
Double 类型用 %f 接受会产生错误,应该用%lf C语言中SIN,COS的参数为弧度,角度应先转换为弧度才能计算,否则出错 三角形的判断条件,任意两边长度和大于第三边 闰年判断条件整百年为40 ...
- LINUX中错误 SELinux is disabled
解决: setenforce: SELinux is disabled 那么说明selinux已经被彻底的关闭了 如果需要重新开启selinux,请按下面步骤: vi /etc/selinux/con ...
- 框架之 hibernate之二
1. Hibernate持久化对象的状态 2. Hibernate的一级缓存 3. Hibernate操作持久化对象的方法 4. Hibernate的基本查询 Hibernate的持久化类 什么是持久 ...
- Python沙盒环境配置
一.简介 本文介绍配置python沙盒环境的方法步骤. 二.安装步骤 1.安装pyenv http://www.cnblogs.com/274914765qq/p/4948530.html 2.安装v ...
- Git 之 github分享代码
作为一个技术人员还是脱离不了屌丝的本质,所以每天都是逛逛github,看看别人有什么好的项目,自己可以给他挑挑bug也可以提供自己的水平,但是别人不那怎么才能给别人贡献代码呢?那就是fork了.... ...
- java后台对json格式数据的解析
Json 和 Jsonlib 的使用 什么是 Json JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式 ...
- Java50道经典习题-程序36 移动位置
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 分析:比如有4个数n=4; 1 2 3 4 各个数向后移动2位m=2,变为 1 2 3 4 将最后m个数,即将最后2个数 ...
- C#中的线程池使用(二)
线程池是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.每个进程只有一个线程池对象. 下面说一下线程池中的异常,在线程池中未处理的异常将终止进程.以下为此规则的三种例外 ...