主从配置步骤:
假设两台机器分别为192.168.0.202, 192.168.0.203,其中202做主,203做从。
1. 在两台mysql上创建同步用户。202执行:
GRANT ALL PRIVILEGES ON *.* TO 'repl'@'192.168.0.203' IDENTIFIED BY 'repl' WITH GRANT OPTION;
203执行:
GRANT ALL PRIVILEGES ON *.* TO 'repl'@'192.168.0.202' IDENTIFIED BY 'repl' WITH GRANT OPTION;
让两个mysql可以互相通过repl/repl访问对方。
2. 对两台机器,打开/etc/my.cnf mysql配置文件,在[mysqld]下打开以下选项:
log-bin=mysql-bin
innodb_flush_log_at_trx_commit = 1
sync_binlog=1
binlog-do-db=bookmark
binlog-do-db=debate
binlog-ignore-db=test
binlog-ignore-db=mysql
replicate-do-db=bookmark
replicate-do-db=debate
其中binlog-do-db和replicate-do-db标记出需要进行同步的数据库,对于多个数据库,重复选项多次即可,如上面的配置则表示同步bookmark和debate。binlog-ignore-db表示不
进行同步的数据库,上面的配置表示不同步test, mysql库。
对于主mysql(202),打开选项:
server-id=1
对于203,从mysql,打开选项
server-id=2
注意server-id选项必须打开,并且集群中每个mysql都要有一个单独的值,不能重复。一般设置主为1,从为2, 3, 4....。手册上说只要不相同什么整数都没有关系,可以设置为IP的值,如:202,
203.
3. 重新启动两个mysql. 分别输入:show master status; 命令,此时应该显示:
+------------------+----------+-----------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-----------------+------------------+
| mysql-bin.000006 | 98 | bookmark,debate | test,mysql |
+------------------+----------+-----------------+------------------+
1 row in set (0.00 sec)
输入:show slave status; 命令,应该显示:
Empty set (0.00 sec)
表示还没有从。
4. 为了避免风险,主mysql现在最好不要对外提供服务,就是说主mysql的已有数据不要在动了。主mysql(202), 执行下面的命令:
FLUSH TABLES WITH READ LOCK;
锁定表,这个时候所有的commit都会失败。
执行:show master status;
把输出结果记录下来,尤其是那个File和Position的值,后面要用。这里就是:mysql-bin.000006和98
把2个mysql都停掉,命令:./mysqladmin -u root shutdown
现在把master mysql(202)的数据复制到203上,让slave的数据和master的同步。例如用sftp把202 data目录的bookmark, debate复制到203的data目录内。两边一定要保持一致。
5. 启动slave mysql(203),执行命令:
CHANGE MASTER to MASTER_HOST='192.168.0.202', MASTER_PORT=3306,
MASTER_USER='repl', MASTER_PASSWORD='repl',
MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=98
其中master_host就是主mysql, master_log_file, master_log_pos为上一步在master端执行show master status; 获得的File和Position值,此处换成那些值。注意数字是没有单
引号引起来的。如果上面一步File和Position没有值,master_log_file='', master_log_pos=4
然后执行: start slave;
6. 启动master mysql(202).
在master端执行:unlock tables; 解除第4步的锁表。
在slave端执行:show slave status \G ; 察看Slave_IO_State,一般应该为"Waiting for
master to send event";此时Slave_IO_Running和Slave_SQL_Running应该为true,
如果不是,在slave端执行: stop slave; start slave; 重启复制进程。Replicate_Do_DB为要复制的数据库,和my.cnf配置的相同。
在master端执行: show master status; 对比File, Position的值和上面slave端的Master_Log_File,Read_Master_Log_Pos,两边相同则表示搭建完成。
7. 测试集群正确。
1). 在master端创建一个数据库abc,然后察看slave端是否同步创建了。
2). 在abc插入几条记录,察看slave端数据是否同步插入。
3). 更新abc的记录,察看slave端数据是否同步
4). 删除abc的记录,察看slave端数据是否同步
5). 停掉slave服务器,重新执行2,3,4的内容,重启slave,看slave端数据是否同步。
在执行上面的操作过程中,每执行一次都用第6步的方法察看master的File, Position值和slave的Master_Log_File,Read_Master_Log_Pos是否相同,如果主从工作正常,这
两个值在一次同步完成以后(slave status的Slave_IO_State显示:Waiting for master to send event)将会完全相同。
8. 日志检查
如果有错误,检查mysql data目录的 ...machinname.err 文件。
9. 应用切换到slave
如果master mysql坏掉了,需要将应用转移到slave段。首先在slave端执行:show master status; 把输出保存下来,然后再把应用切换过去。保存输出的File和Position值将可以用于以后从slave恢复master.
具体从slave恢复master的办法:
在master端执行:
CHANGE MASTER to MASTER_HOST='192.168.0.203', MASTER_PORT=3306,
MASTER_USER='repl', MASTER_PASSWORD='repl',
MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=98 ;
其中 MASTER_HOST 为slave的ip, MASTER_LOG_FILE, MASTER_LOG_POS为切换到slave时记录下的File和Position值。
在master执行:start slave;
待master内容基本恢复以后(在master执行:show slave status \G; Slave_IO_State显示为Waiting for master to send event)
将应用切换回master。
待系统稳定后master执行:stop slave停止slave。如果要避免master重启以后自动开启slave,可以将master mysql的data文件夹的master.info文件删掉。
分享到:
相关推荐
学校分发资料。
主要介绍了MySQL主从数据库搭建方法,较为详细的分析了MySQL主从数据库搭建的原理、步骤与具体操作技巧,需要的朋友可以参考下
主要介绍了基于Docker的MySQL主从复制环境搭建的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
数据库mysql必知必会
Mysql主从数据库搭建 原理与详细步骤,留备自用,按步骤搭建即可,主从数据库的配置,包含出现问题的两种解决方式。
顶级文档,全是干货!本文档主要对MySQL主从复制进行简单的介绍,包括原理简介、搭建步骤、状态检查、同步中断及排查、备库重建。
详细说明了如何配置Master主服务器和Slave从服务,包括同步原理和具体搭建步骤。文章还涵盖了半同步复制的原理与实施,以及如何处理主从架构中的数据延迟问题。此外,还探讨了MySQL高可用方案和分库分表的实用性,...
mysql5.6.14配置主从复制 ,自己搭建的mysql5.6.14配置主从复制步骤记录
如果你严格按照文中的步骤进行配置,相信很快就可以搭建好一个基础的 MySQL 主从环境。 介绍 MySQL 主从同步分为 3 个步骤: master 节点将数据的更新记录写到 binary log 中。 slave 节点开启 IO 线程连接 ...
主要介绍了CentOS服务器平台搭建mysql主从复制与读写分离的方法,结合实例形式较为详细的分析了CentOS平台搭建mysql主从复制与读写分离的步骤、设置方法、相关操作技巧与注意事项,需要的朋友可以参考下
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master: ...
myslq安装Linux和搭建主从复制和mycat读写分离安装步骤
该压缩包中包含了测试proxy和mycat对mysql主从的方法,测试环境的搭建步骤和测试对比结果
本文详细描述了MySQL 5.6 主从复制功能的详细搭建步骤及相关参数说明,保证一次成功。文末附带主从切换方法。
根据要求配置MySQL主从备份、读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记
花了小一天的时间,终于实现了centos7 mariadb主从复制配置搭建,下面记录一下过程 环境: 虚拟机:vm8; centos7 版本:7.2.1511; mariadb 版本:centos7.2内置的 主库服务器: 10.69.5.200,CentOS 7,MariaDB 10已...
> 部署 MySQL 5.7 集群 master & slave (仅测试用) 镜像版本 5.7 1、创建 overlay 网络 docker network create --driver overlay common-network --attachable 2、编辑两个配置文件 master.cnf 与 slave.cnf ...
包含MySQL的环境搭建过程和步骤,主从复制的原理,及搭建过程,MyCat的使用方法和原理,以及索引的使用规范和优化注意事项