mysql主从复制配置过程

主库配置

1. 配置mysql

vim /etc/my.cn
# 在文件中增加以下内容
server-id=1 # 保证server id唯一
log-bin = /var/lib/mysql/mysql-bin.log
binlog-do-db = db1
binlog-do-db = db2

其中db1和db2是计划进行主从复制的库,如果有多个,写多行即可。配置完毕后,重启数据库: service mysqld restart

2. 添加复制用户

通过phpmyadmin,添加新用户,并授予REPLICATION SLAVE权限。或者通过root用户登录到mysql,赋予权限:

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'

其中repl是用户名,password是该用户的密码。

3. dump数据

如果能够保证不会产生新数据,就不需要对数据库加锁。如果不能保证,则需要对每一个dump数据的数据库加锁:

use db1;
FLUSH TABLES WITH READ LOCK;

然后dump数据:

mysqldump -uroot -p db1 > db1.sql

如果有多个数据库,则重复上述过程多次。

4. 查看二进制文件位置

使用root身份登录mysql,查看master状态:

show master status;

该命令会有类似如下格式的输出:

+-----------------+-----------+----------------+------------------+
| File  | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+-----------+----------------+------------------+
| mysql-bin.00002 | 445 | db1,db2 |   |
+-----------------+-----------+----------------+------------------+
1 row in set (0.00 sec)

5. 解锁

如果导出数居前对数据库加了读锁,则需要解除:

use db1;
UNLOCK TABLES;

到此,主库配置完毕。特别需要记住 show master status 输出中的 file 和 position 的值。

从库配置

1. 新建数据库

首先在从库上建立相同名称的数据库。

2. 配置从数据库

vim /etc/my.cnf
# 在my.cnf中增加以下内容:
server-id = 2 # 保证id唯一
relay-log = /var/lib/mysql/mysql-relay-bin.log
replicate-wild-do-table = db1.%
replicate-wild-do-table = db2.%

如果同步多个数据库,replicate-wild-do-table需要写多行。配置好后,重启数据库。

3. 导入数据

将主服务器上dump出来的数据导入从服务器中:

mysql -uroot -p db1 < db1.sql

4. 配置主从同步

登录到mysql服务器,配置同步的主服务器信息:

> change master to master_host='xxx.xxx.xx.xx',
> master_user='repl',
> master_password='password',
> master_log_file='mysql-bin.00000x',
> master_log_pos=xxxx;

配置好后启动主从同步: start slave。然后通过命令查看状态:show slave status,如果成功的话slave_io_running和slave_sql_running两项应该都是yes.

测试

在主库上新增记录或者添加表等操作,几乎都能实时反映到从库上。

以上就是mysql主从复制配置过程的详细内容,更多关于mysql主从复制配置的资料请关注我们其它相关文章!

(0)

相关推荐

  • MySQL配置SSL主从复制

    MySQL5.6 创建SSL文件方法 官方文档:https://dev.mysql.com/doc/refman/5.6/en/creating-ssl-files-using-openssl.html#creating-ssl-files-using-openssl-unix-command-line Create clean environment mkdir /home/mysql/mysqlcerts && cd /home/mysql/mysqlcerts Create CA c

  • MySQL主从复制配置心跳功能介绍

    在 MySQL 主从复制时,有时候会碰到这样的故障:在 Slave 上 Slave_IO_Running 和 Slave_SQL_Running 都是 Yes,Slave_SQL_Running_State 显示 Slave has read all relay log; waiting for the slave I/O thread to update it ,看起来状态都正常,但实际却滞后于主,Master_Log_File 和 Read_Master_Log_Pos 也不是实际主上最新的

  • Mysql 5.7从节点配置多线程主从复制的方法详解

    前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有一个线程在工作.相当于还是以前的单线程. 从 Mysql 5.7 开始支持同一数据库下并行主从复制.不过默认情况下,还是单数据库单个线程,如果需要使用多线程,需要在从节点进行配置. Mysql 5.7 对主从复制增加了一种类型,共有两种类型,如下: DATABASE 基于库的并行复制 , 每个数据库

  • 深入解析半同步与异步的MySQL主从复制配置

    简单来讲MySQL的主从复制就是一个C/S架构的应用.master可以认为是我们通常意义上所认为的server,slave可以当作是一台client.slave上的I/O线程去请求master上数据,而master验证通过slave的信息后就允许slave接入,然后进行数据变化信息的发送. 一.MySQL主从复制原理 这里我以MySQL5.5为例来说一下MySQL的主从复制的原理: 首先由备节点的I/O线程负责向主节点请求数据,主节点验证通过以后会由dump线程把数据发送给备用节点.备用节点的I

  • mysql5.6 主从复制同步详细配置(图文)

    环境:Centos 6.5 mysql5.6 采用的是虚拟机环境 master ip:192.168.17.140 slaver ip:192.168.17.141 下面开始配置: master的配置: 1.注意下图的箭头: 2:重新启动mysql服务 shell: service mysqld restart 3.看下图: 命令如下: mysql -u root -p grant replication slave,replication client on *.* to 'root'@'19

  • 全面解读MySQL主从复制,从原理到安装配置

    为什么需要主从复制? 1.在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作. 2.做数据的热备 3.架构的扩展.业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能. 什么是mysql的主从复制? MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节

  • mysql(master/slave)主从复制原理及配置图文详解

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收

  • MySQL主从复制的原理及配置方法(比较详细)

    一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新. 将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句.请注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM存储引擎的主服务器上工作.并且,该语句将获得全局读锁定. MySQL 使用3个线程来执行复制功能,其中1个在主服

  • mysql主从复制读写分离的配置方法详解

    一.说明 前面我们说了mysql的安装配置,mysql语句使用以及备份恢复mysql数据;本次要介绍的是mysql的主从复制,读写分离;及高可用MHA; 环境如下: master:CentOS7_x64 mysql5.721 172.16.3.175 db1 slave1:CentOS7_x64 mysql5.7.21 172.16.3.235 db2 slave2:CentOS7_x64 mysql5.7.21 172.16.3.235 db3 proxysql/MHA:CentOS7_x64

  • Windows下MySQL主从复制的配置方法

    MySQL主从复制允许将来自一个数据库(主数据库)的数据复制到一个或多个数据库(从数据库). 主数据库一般是实时的业务数据写入和更新操作,从数据库常用的读取为主. 主从复制过程: 1.主服务器上面的任何修改都会通过自己的 I/O tread(I/O 线程)保存在二进制日志 Binary log 里面. 2.从服务器上面也启动一个 I/O thread,通过配置好的用户名和密码, 连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log(中继日志)里面. 3.

随机推荐