Mysql 5.6主从搭建
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主从搭建的更多相关文章
- MySQL 5.7主从搭建(同一台机器)
主从复制原理:复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例. 1)主服务器将所有数据和结构更改记录到二进制日志中. 2)从属服务器从主服务器请求该二进制日志并在本地应用其 ...
- mysql 主从搭建步骤
mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...
- ### MySQL主从搭建Position
一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...
- 关于mysql集群主从服务器搭建
在高并发流量下,数据库往往是服务端的瓶颈,由于数据库数据需要确保落地,同时保证数据同步,数据即时性,有效性的问题,导致数据库不能像平常后端程序一样负载均衡. 那么在大并发下,该如何缓解数据库的压力呢? ...
- SQL Server、MySQL主从搭建,EF Core读写分离代码实现
一.SQL Server的主从复制搭建 1.1.SQL Server主从复制结构图 SQL Server的主从通过发布订阅来实现 1.2.基于SQL Server2016实现主从 新建一个主库&quo ...
- MySQL 复制介绍及搭建
MySQL复制介绍 MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制然后再解析日志并应用到自身,类似Oracle中的Data Guard. M ...
- MYSQL管理之主从同步管理
原文地址:MYSQL管理之主从同步管理 作者:飞鸿无痕 MYSQL管理之主从同步管理 MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重 ...
- xtrabackup 在线主从搭建
因为意外导致某个MySQL的从服务器宕机,且不可修复,因为是业务数据库,不能停机和锁表进行从库的搭建,所以考虑了使用xtrabackup 进行在线主从搭建. 一.数据库环境 注意: 主从搭建主库一定 ...
- MySQL架构之 主从+ProxySQL实现读写分离
准备服务器: docker run -d --privileged -v `pwd`/mysql_data:/data -p 3001:3306 --name mysql5-master --host ...
随机推荐
- 使用jQuery+css实现选项卡切换功能
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- linux 将大文件分解为多个小文件
使用的命令为: split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo_ 其中 --bytes 为小文件的大小, --suffi ...
- 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 ...
- 国际化---demo1---bai
login.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- “百度杯”CTF比赛 2017 二月场(Misc Web)
爆破-1: 打开链接,是502 我直接在后面加个变量传参数:?a=1 出了一段代码 var_dump()函数中,用了$$a,可能用了超全局变量GLOBALS 给hello参数传个GLOBALS 得到f ...
- c# linq查询语句详细使用介绍
本文介绍Linq的使用方法 linq介绍 LINQ只不过是实现IEnumerable和IQueryable接口的类的扩展方法的集合. LINQ可以查询IEnumerable集合或者IQueryable ...
- Oracle Sql中输入特殊字符 转义字符
1.单引号,出现在单引号对中的'号必须成对出现,每对代表一个', 例如select '''' from dual; 结果:' 前后两个'代表正常字符串,中间两个''代表一个',此语句输出结果只有一个'
- findwindow\sendmessage向第三方软件发送消息演示
这里仅仅是以putty作为演示消息发送机制和控件搜索机制 程序一:代填IP和端口,并建立远程连接 #include"stdafx.h"#include <windows.h& ...
- C#改变LInqToSQL的引用地址,读取config的数据库字符串
C#改变LInqToSQL的引用地址,读取config的数据库字符串修改Properties 下 Settings.Settings 下 Settings.Designer.cs 下 return ( ...
- IDEA中Git实战
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...