MySQL 主从复制搭建

1. 搭建

1.1 Master

Master配置(my.cnf)

[mysqld]
log-bin=/usr/local/mysql-5.6.16/log/mysql-bin
server_id=1

启动Master

./bin/mysqld_safe --defaults-file=/usr/local/mysql-5.6.16/my.cnf --user=mysql &

创建用于复制的用户

mysql > grant replication slave on *.* to ‘rep1‘@‘192.168.80.102‘ identified by ‘rep1‘;

备份数据并还原到从服务器
-- 设置读锁,数据无法更新

mysql > flush tables with read lock;

-- 查看开始复制的位置

mysql > show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

-- 传输数据

tar -czf - data/ | ssh 192.168.80.102 "tar -xzf - -C /usr/local/mysql-5.6.16"

-- 解除锁定

mysql > unlock tables;

1.2 Slave
Slave配置(my.cnf)

[mysqld]
server_id=2      # Master和Slave之间唯一
skip-slave-start # 启动时不启动slave的复制进程

启动Slave

./bin/mysqld_safe --defaults-file=/usr/local/mysql-5.6.16/my.cnf --user=mysql &

配置复制参数

mysql > change master to
    -> master_host=‘192.168.80.101‘,
    -> master_port=3306,
    -> master_user=‘rep1‘,
    -> master_password=‘rep1‘,
    -> master_log_file=‘mysql-bin.000001‘,
    -> master_log_pos=120;

启动Slave的IO和SQL线程

mysql > start slave;

检查

mysql > show processlist \G

应出现以下信息:
State: Waiting for master to send event
State: Slave has read all relay log; waiting for the slave I/O thread to update it

mysql > show slave status \G

应出现以下信息:
Slave_IO_State: Waiting for master to send event
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

2. 测试
2.1 Master

mysql > use test;
mysql > show tables;
mysql > create table t1 as select * from mysql.user;

2.2 Slave

mysql > show tables;
mysql > select * from t1;

3. 附加

3.1 主要复制启动选项
(1) log-slave-updates
该参数需要和log-bin一起使用,配置从服务器上的更新操作是否写binlog。默认关闭。如果搭建一个链式复制,从服务器同时也是其他服务器的主服务器,则需要打开这个选项,以让它的从服务器获得它的binlog进行同步。

(2) read-only
on:  从服务器只接受超级用户的更新操作
off: 从服务器接受普通用户的更新操作

时间: 2024-08-19 05:49:16

MySQL 主从复制搭建的相关文章

基于Docker的MySQL主从复制搭建及原理

为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别 利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --

Mysql主从复制搭建

Mysql主从复制(centOS) 1.    安装 1.1 安装mysql 1.2启动mysql服务 1.3修改root密码 1.4修改登录用户 注意事项 刷新权限 2.    主从复制 2.1修改配置文件 2.2重启mysql  2.3查看主库server_id 2.4查看master状态 2.5执行mysql命令 2.6启动从服务  2.7查看是否主从复制成功

Mysql主从复制搭建及详解

环境简介 主服务器:CentOS6.5下mysql5.6.30 安装请参考这里网址:http://blog.csdn.net/hsd2012/article/details/51232612 从服务器:win7下5.6.17 原理简介及优缺点 MySQL从3.23版本开始提供复制功能,复制主要是指将主服务器的DDL和DML操作,通过二进制日志(binLog日志),传到服务的服务器上,然后在从服务器上对这些日志从新执行,从而实现从服务器与主服务器的数据同步.MySQL支持一台主服务器同时向多台从服

基于Docker的Mysql主从复制搭建

为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别 利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --

基于Docker的Mysql主从复制搭建(线下/线上)

利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 Slave(从): docker run -p 3340:3306 --name mymysql1 -e MYSQL_R

MYSQL主从复制搭建全过程实战---探索不能实时同步的关键性参数

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/45873859 一.主库操作  1.全库导出 mysqldump  -h192.168.1.6 --all-databases  -uroot -proot --opt --add-drop-database --add-drop-table --events --triggers --routines --default-character-set=utf8 --master-data=

重新学习Mysql数据13:Mysql主从复制,读写分离,分表分库策略与实践

一.MySQL扩展具体的实现方式 随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量. 关于数据库的扩展主要包括:业务拆分.主从复制.读写分离.数据库分库与分表等.这篇文章主要讲述数据库分库与分表 (1)业务拆分 在?大型网站应用之海量数据和高并发解决方案总结一二?一篇文章中也具体讲述了为什么要对业务进行拆分. 业务起步初始,为了加快应用上线和快速迭代,很多应用都采用集中式的架构.随着业务系统的扩大,系统变得越来越复杂,越来越难以维护,开发效率变得越

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构 一、业务发展驱动数据发展

一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成数据访问服务的失效,从而导致网站的业务中断,给公司和用户造成双重损失.那么,有木有一种方案能够解决此问题,使得数据库不再因为负载压力过高而成为网站的瓶颈呢?答案肯定是有的. 目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置