`
myreligion
  • 浏览: 205371 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql主从搭建和测试步骤

阅读更多

主从配置步骤:
 假设两台机器分别为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文件删掉。

分享到:
评论
1 楼 tan4836128 2011-08-12  
恩,虽然细节不知所云,总体思路清晰,有空一定要试一试,看到底行不行

相关推荐

    MySQL主从复制搭建从入门到掌握

    #### 二、MySQL主从复制搭建步骤 ##### 1. 开启二进制日志 - **必要性**:二进制日志(binary log)是MySQL主从复制的基础,它记录了所有对数据库进行更改的操作。为了实现主从复制,主服务器必须开启二进制日志。 - ...

    Mysql主从搭建及Mysql运维相关命令

    MySQL主从架构是一种常见的数据库高...以上就是MySQL主从搭建及运维相关命令的详细解析,这些步骤和命令对于构建和维护一个稳定的MySQL主从复制环境至关重要。注意在实际操作中根据实际情况调整配置,并确保数据安全。

    MySQL主从配置完整步骤资料

    本文详细介绍了MySQL主从配置的具体步骤和命令,包括如何在主服务器上创建复制用户、编辑配置文件、设置读锁、获取binlog信息;以及在从服务器上编辑配置文件、配置复制参数、启动复制进程和检查复制状态的方法。...

    mysql主从库配置

    ### MySQL 主从库配置详解 ...通过以上步骤,我们可以成功搭建起 MySQL 的主从库结构,实现了数据的自动同步。这种架构不仅可以提高数据的安全性,还可以通过合理规划负载均衡策略,提升整体系统的性能。

    mysql 主从复制环境搭建

    在 Windows 环境下,搭建 MySQL 主从复制功能需要准备系统环境、安装 MySQL 服务、配置主从复制等步骤。 步骤一:准备系统环境 1. 准备一台 PC,安装 Windows XP 32 位操作系统。 2. 安装 MySQL 5.0。 步骤二...

    主从mysql 搭建实践.rar

    这个"主从MySQL搭建实践.rar"压缩包文件显然包含了详细的步骤和可能遇到的问题,以及Redis的搭建和启动脚本,这对于理解MySQL主从复制和Redis的基础操作非常有帮助。 MySQL主从复制的核心原理是,当数据在主服务器...

    MySql 主从搭建配置

    自己手动配置Mysql主从服务器的步骤及方法的记录笔记。 https://www.tanshuyi.top/web/blog?id=36

    Mysql 5.6.26 主从搭建完整版.zip

    MySQL 5.6.26主从复制是一个关键的数据库管理...总的来说,MySQL 5.6.26的主从搭建涉及多个步骤,从配置到实施都需要细心操作。通过主从复制,你可以创建一个可靠的数据库集群,提高数据的可用性和系统的整体稳定性。

    Mysql 5.6.26 主从搭建完整版.pdf

    文章内容涉及环境配置、MySQL安装、配置文件修改、主从同步设置等多个方面,为读者提供一个完整搭建MySQL主从架构的过程。 首先,我们来了解环境配置部分。文章明确指出,所使用的操作系统版本为CentOS 7.6,MySQL...

    mysql主从同步搭建修改优化版.pdf

    以下是对搭建、修改和优化MySQL主从同步过程的详细解释: 1. **环境配置**: 主服务器(Master)和从服务器(Slave)通常运行在不同的硬件或虚拟机上,以实现物理隔离和负载分散。在这个例子中,两者都是CentOS ...

    MySQL主从介绍、搭建、管理等详细过程-2.0

    下面将详细介绍MySQL主从架构的基本概念、搭建步骤以及日常管理。 **1. 主从复制的概念** 在MySQL主从复制中,数据更改操作(如INSERT、UPDATE、DELETE)首先在“主”服务器上执行,然后这些更改被记录到二进制日志...

    mysql主从互备实战

    本文将详细介绍如何搭建MySQL主从互备系统,并通过具体的步骤指导完成快速数据迁移。 #### 二、准备工作 ##### 1. 环境准备 - **主机**:IP地址为192.168.1.203,端口号3306 - **从机**:IP地址为192.168.1.204,...

    MySQL主从复制.docx

    通过以上步骤,可以成功搭建起 MySQL 的主从复制环境。需要注意的是,在实际应用过程中,可能还需要根据具体的业务场景对主从复制进行更细致的配置和优化。例如,可以考虑使用半同步复制或全局事务标识符(GTID)来...

    mysql主从复制搭建文档

    #### 三、主从复制的搭建步骤 ##### 1. 准备环境 本案例中使用的是两台Linux虚拟机,每台机器上都已经安装了MySQL 5.6版本。 ##### 2. 主服务器配置 - **创建复制用户**:在主服务器上创建一个专门用于复制的用户,...

    mysql主从复制搭建.docx

    ### MySQL主从复制知识点 #### 一、MySQL主从复制概念与原理 ...通过以上步骤,即可完成MySQL主从复制的基本搭建。需要注意的是,实际部署过程中还需要根据具体情况调整配置文件,以及进行必要的安全设置。

    mysql5.6的主从搭建和主从切换-详细笔记文档总结

    MySQL 5.6 主从搭建和主从切换详细...总结来说,MySQL 5.6 主从搭建和主从切换是 MySQL 运维中非常重要的一部分,本文档总结了详细的步骤和笔记文档总结,可以帮助读者快速掌握 MySQL 5.6 主从搭建和主从切换的技术。

Global site tag (gtag.js) - Google Analytics