MySQL高可用配置(主从复制)
主从复制包含两个步骤:
在 master 主服务器(组)上的设置,以及在 slave 从属服务器(组)上的设置。
环境:
MASTER: 192.168.155.101
SLAVE: 192.168.155.102
注意点:
1. 配置主服务器 master需要启用二进制日志。
2. 给 master 设置唯一的 server_id ,所有的 slave 从属服务器也要设置 server_id。server_id值可以是整数型的数字(1 ~ 2^31-1), 在同一个复制组(replicating group)中的每台服务器的server_id都必须是唯一的。
3. slave 从属服务器需要有连接并从master复制的权限, 通常是为每一台slave 创建一个单独的用户(user),并且只授予复制的权限(REPLICATION SLAVE 权限).也可使用共用的用户权限。
MASTER配置:
First Node (MASTER: 192.168.155.101)
---------------
vi /etc/my.cnf.d/server.cnf
[mysqld]
server-id=1
log-bin=master-bin
binlog-do-db=my-db #需要启用事务日志的数据库名
binlog-ignore-db=mysql #不启用事务日志的系统数据库名
以上两行不指定的话,将对全部数据库启用事务日志。
GRANT REPLICATION SLAVE ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'rep_pass';
FLUSH PRIVILEGES;
# service mysql restart
查看Master当前二进制日志的position时,需要阻止任何数据的提交,并锁定所有的表。
MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;
MariaDB [(none)]> SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 245 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记下File列的日志文件名和Position列的位置数,在SLAVE上同步时需要。
备份MASTER上的数据库并在SLAVE上手动导入。
释放表锁定
MariaDB [(none)]> UNLOCK TABLES;
SLAVE配置:
Other Node (SLAVE: 192.168.155.102)
---------------
vi /etc/my.cnf.d/server.cnf
[mysqld]
server-id=2
read-only=on
relay-log=relay-bin
innodb_recovery_update_relay_log=1
relay_log_recovery=1
replicate-do-db=my-db #需要同步事务日志的数据库名
replicate-ignore-db=mysql #不需要同步事务日志的系统数据库名
以上两行不指定的话,将对全部数据库同步事务日志。
# service mysql restart
MariaDB [(none)]> show variables like '%relay%';
+----------------------------------+----------------+
| Variable_name | Value |
+----------------------------------+----------------+
| innodb_recovery_update_relay_log | ON |
| max_relay_log_size | 0 |
| relay_log | relay-bin |
| relay_log_index | |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | ON |
| relay_log_space_limit | 0 |
| sync_relay_log | 0 |
| sync_relay_log_info | 0 |
+----------------------------------+----------------+
10 rows in set (0.00 sec)
开始同步
MariaDB [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.155.101',
-> MASTER_USER='rep_user',
-> MASTER_PASSWORD='rep_pass',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='master-bin.000001',
-> MASTER_LOG_POS=245,
-> MASTER_CONNECT_RETRY=10;
Query OK, 0 rows affected (0.08 sec)
MariaDB [(none)]> START SLAVE;
查看SLAVE状态:
MariaDB [(none)]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.155.101
Master_User: rep_user
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: master-bin.000002
Read_Master_Log_Pos: 411
Relay_Log_File: relay-bin.000006
Relay_Log_Pos: 696
Relay_Master_Log_File: master-bin.000002
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: 411
Relay_Log_Space: 1269
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
1 row in set (0.00 sec)
查看Slave_IO_Running和Slave_SQL_Running,如果都是Yes说明搭建成功,就可以建表插入数据测试了。
如果需要暂停SLAVE复制
MariaDB [(none)]> STOP SLAVE;
如果出现SLAVE不同步的现象,可以先暂停SLAVE复制,再执行一次同步操作即可。
MySQL高可用配置(主从复制)的更多相关文章
- OpenStack中MySQL高可用配置
采用Heartbeat+DRBD+mysql高可用方案,配置两个节点的高可用集群 l 配置各节点互相解析 gb07 gb06 l 配置各节点时间同步 gb07 [root@gb07 ~]# ntp ...
- MySQL 高可用之主从复制
MySQL主从复制简介 Mysql的主从复制方案,都是数据传输的,只不过MySQL无需借助第三方工具,而是自带的同步复制功能,MySQL的主从复制并不是磁盘上文件直接同步,而是将binlog日志发送给 ...
- Lvs+Keepalived实现MySQL高可用
LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(MySQL双主) 安装前的准备: VIP:192.168.0.201 Keepalived: Keepa ...
- 003.MySQL高可用主从复制新增slave
一 基础环境 主机名 系统版本 MySQL版本 主机IP master CentOS 6.8 MySQL 5.6 172.24.8.10 slave01 CentOS 6.8 MySQL 5.6 17 ...
- MySQL+keeplived高可用配置
MySQL高可用基础环境:基于MySQL互为主从(双主.主主),请现配置 主备两台机器 主的操作1.在keepalived主服务器上安装keepalived yum -y install keepal ...
- MySQL高可用主从复制新增slave
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 基础环境 二 新增slave2方案 2.1 方案1:-复制主库 2.2 方案2 ...
- MySQL高可用架构之MHA
简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是 ...
- mysql高可用架构
高可用 高可用(High Availabiltity) 应用提供持续不间断(可用)的服务的能力 系统高可用性的评价通常用可用率表示 造成不可用的原因 硬件故障(各种) 预期中的系统软硬件维护 ...
- [转载] MySQL高可用方案选型参考
原文: http://imysql.com/2015/09/14/solutions-of-mysql-ha.shtml?hmsr=toutiao.io&utm_medium=toutiao. ...
随机推荐
- 关于JDK,tomcat,eclipse的配置
1.下载安装JDK 在自定义安装路径时,jdk和之后的jre文件夹是属于平行结构,我的安装路径为:D:\jdk\jdk1.6.0_43和D:\jdk\jre6 然后是对环境变量的配置, 计算机→属性→ ...
- AJAX 向后台发送带 List 集合的对象(转)
var school = {};school.name = '清华大学';school.address = "北京";//此处使用的是 easyui 插件来获取数据var rows ...
- 使用SQLiteOpenHelper管理SD卡中的数据库
本人在网上找了好多大牛的资料,研究了几天终于调试出来了.以下是笔记: SQLiteOpenHelper是Android框架为我们提供的一个非常好的数据库打开.升级与关闭的工具类.但是这个工具类会自动把 ...
- aarch64 cross compile 交叉编译 opencv
需求 : linux host : UBUNTU opencv source : opencv 3.3.1.zip CMAKE : apt-get install cmake cmake-qt- ...
- 【CSS】三栏布局的经典实现
要求:自适应宽度,左右两栏固定宽度,中间栏优先加载: <!DOCTYPE html> <html> <head> <title>layout</t ...
- 【Luogu】【关卡2-15】动态规划的背包问题(2017年10月)【还差一道题】
任务说明:这是最基础的动态规划.不过如果是第一次接触会有些难以理解.加油闯过这个坎. 01背包二维数组优化成滚动数组的时候有坑有坑有坑!!!必须要downto,downto,downto 情景和代码见 ...
- CSP 初赛复习 密码
CSP 初赛复习 密码是\(xj\)机房学生端密码
- PHP中session存储及删除变量的方法
Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用.但是session会话信息是临时的,在用户离开网站后就会被删除.如果需要永久储存信息,就需要把数据存储在数据库中. < ...
- rest framework的框架实现之 (版本,解析器,序列化,分页)
一版本 版本实现根据访问的的方式有以下几种 a : https://127.0.0.1:8000/users?version=v1 ---->基于url的get方式 #settings.pyR ...
- vue 页面回退mounted函数不执行的问题及解决方法
前言 最近做项目碰到一个很头大的问题--从a页面跳到b页面进行编辑,编辑完再返回a页面,却没走a页面的钩子函数mounted,数据没有更新 经过一番面向百度研究,终于找到了问题所在.接下来就记录一下这 ...