mysql设置主从的重要性和必要性不必多说,下面开始详细说明如何搭建主从。

1、主服务器上创建一个用于复制的账户。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.47.3' IDENTIFILED BY '';
mysql> flush privileges;

2、主服务器参数修改

[root@localhost ~]# vi /usr/local/mysql5.6/etc/my.cnf
修改如下内容
server-id = 1
log-bin=mysql-bin

3、主服务器备份数据,并传输

mysql>  flush tables with read lock;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000036 | 3252 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
[root@localhost ~]# /usr/local/mysql5.6/bin/./mysqldump -uroot -p --all-databases | gzip > bak.sql.gz
[root@localhost ~]# scp bak.sql.gz root@192.168.47.3:~/
mysql> unlock tables;

4、从服务器恢复数据

[root@localhost bin]# gunzip bak.sql.gz
[root@localhost bin]# mysql -uroot -p
mysql> source ~/bak.sql;

5、修改从服务器配置

[root@localhost bin]# vi /etc/my.cnf
添加如下内容
server-id = 2
重启服务器
[root@localhost ~]# service mysql restar

6、从服务器设置主从配置

mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.47.5',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='1234',
-> MASTER_LOG_FILE='mysql-bin.000036',
-> MASTER_PORT=3307,
-> MASTER_LOG_POS=3252;
MASTER_HOST指的是主服务器的IP地址,
MASTER_USER指的是复制的账户
MASTER_PASSWORD指的是账户的密码
MASTER_PORT指的是主服务器端口
MASTER_LOG_FILE指的是bin-log的文件
MASTER_LOG_POS指的是日志文件位

7、从服务器启动slave线程

mysql> start slave;
mysql> show processlist;
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
| 1 | system user | | NULL | Connect | 714 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL | 0 | 0 |
| 2 | system user | | NULL | Connect | 714 | Waiting for master to send event | NULL | 0 | 0 |
| 4 | root | localhost | NULL | Query | 0 | init | show processlist | 0 | 0 |
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
3 rows in set (0.08 sec)

这已经表明主从已经搭建成功。

8、测试

主服务器中

mysql> use warehouse
Database changed
mysql> select * from aaa;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
| 1 | 2 |
| 1 | 2 |
| 2 | 3 |
| 2 | 7 |
+------+------+
5 rows in set (0.06 sec)

从服务器中

mysql>  use warehouse;
Database changed
mysql> select * from aaa;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
| 1 | 2 |
| 1 | 2 |
| 2 | 3 |
| 2 | 7 |
+------+------+
5 rows in set (0.21 sec)

主服务器中

mysql> insert into aaa values (5,7),(56,21);
Query OK, 2 rows affected (0.21 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from aaa;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
| 1 | 2 |
| 1 | 2 |
| 2 | 3 |
| 2 | 7 |
| 5 | 7 |
| 56 | 21 |
+------+------+
7 rows in set (0.00 sec)

从服务器中

mysql> select * from aaa;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
| 1 | 2 |
| 1 | 2 |
| 2 | 3 |
| 2 | 7 |
| 5 | 7 |
| 56 | 21 |
+------+------+
7 rows in set (0.00 sec)

9、管理主从

查看从服务器状态

mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.47.5
Master_User: repl
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: mysql-bin.000036
Read_Master_Log_Pos: 3484
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000036
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 3484
Relay_Log_Space: 460
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 86d34969-fa5d-11e6-b372-000c29c88c3f
Master_Info_File: /usr/local/mysql/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)

关心的两个信息是Slave_IO_Running和Slave_SQL_Running是否是YES。Slave_IO_Running是从主服务器读取BINLOG日志,并写入到从服务器的中继日志中;Slave_SQL_Running负责读取和执行中继日志信息。

注意:如果需要从服务器禁止写入操作,则需要更改参数read-only,使从服务器非root账户只能读数据。


Mysql 5.6主从搭建的更多相关文章

  1. MySQL 5.7主从搭建(同一台机器)

    主从复制原理:复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例. 1)主服务器将所有数据和结构更改记录到二进制日志中. 2)从属服务器从主服务器请求该二进制日志并在本地应用其 ...

  2. mysql 主从搭建步骤

    mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...

  3. ### MySQL主从搭建Position

    一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...

  4. 关于mysql集群主从服务器搭建

    在高并发流量下,数据库往往是服务端的瓶颈,由于数据库数据需要确保落地,同时保证数据同步,数据即时性,有效性的问题,导致数据库不能像平常后端程序一样负载均衡. 那么在大并发下,该如何缓解数据库的压力呢? ...

  5. SQL Server、MySQL主从搭建,EF Core读写分离代码实现

    一.SQL Server的主从复制搭建 1.1.SQL Server主从复制结构图 SQL Server的主从通过发布订阅来实现 1.2.基于SQL Server2016实现主从 新建一个主库&quo ...

  6. MySQL 复制介绍及搭建

    MySQL复制介绍 MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制然后再解析日志并应用到自身,类似Oracle中的Data Guard. M ...

  7. MYSQL管理之主从同步管理

    原文地址:MYSQL管理之主从同步管理 作者:飞鸿无痕 MYSQL管理之主从同步管理 MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重 ...

  8. xtrabackup 在线主从搭建

    因为意外导致某个MySQL的从服务器宕机,且不可修复,因为是业务数据库,不能停机和锁表进行从库的搭建,所以考虑了使用xtrabackup 进行在线主从搭建. 一.数据库环境 注意:  主从搭建主库一定 ...

  9. MySQL架构之 主从+ProxySQL实现读写分离

    准备服务器: docker run -d --privileged -v `pwd`/mysql_data:/data -p 3001:3306 --name mysql5-master --host ...

随机推荐

  1. 使用jQuery+css实现选项卡切换功能

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  2. linux 将大文件分解为多个小文件

    使用的命令为: split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo_ 其中 --bytes 为小文件的大小, --suffi ...

  3. pom.xm首行报错Failure to transfer org.codehaus.plexus:plexus-components:pom:1.1.20

    从SVN导出一个Maven项目,pom.xml首行报错: Failure to transfer org.codehaus.plexus:plexus-components:pom:1.1.20 fr ...

  4. 国际化---demo1---bai

    login.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  5. “百度杯”CTF比赛 2017 二月场(Misc Web)

    爆破-1: 打开链接,是502 我直接在后面加个变量传参数:?a=1 出了一段代码 var_dump()函数中,用了$$a,可能用了超全局变量GLOBALS 给hello参数传个GLOBALS 得到f ...

  6. c# linq查询语句详细使用介绍

    本文介绍Linq的使用方法 linq介绍 LINQ只不过是实现IEnumerable和IQueryable接口的类的扩展方法的集合. LINQ可以查询IEnumerable集合或者IQueryable ...

  7. Oracle Sql中输入特殊字符 转义字符

    1.单引号,出现在单引号对中的'号必须成对出现,每对代表一个', 例如select '''' from dual; 结果:' 前后两个'代表正常字符串,中间两个''代表一个',此语句输出结果只有一个'

  8. findwindow\sendmessage向第三方软件发送消息演示

    这里仅仅是以putty作为演示消息发送机制和控件搜索机制 程序一:代填IP和端口,并建立远程连接 #include"stdafx.h"#include <windows.h& ...

  9. C#改变LInqToSQL的引用地址,读取config的数据库字符串

    C#改变LInqToSQL的引用地址,读取config的数据库字符串修改Properties 下 Settings.Settings 下 Settings.Designer.cs 下 return ( ...

  10. IDEA中Git实战

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...