mysql主从复制——双机互为主从
第一、mysql主从复制(一主一从)
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:
首先需要做一些清理工作,如果之前配置了主从,但是配置失败了。结果会在/var/lib/mysql/中残留很多主从相关的配置文件,如果想从新开始配置,最好是删除主从设置相关的文件后,再开始配置。下面是mysql从来没有配过主从的该目录原始的文件,如下:
[root@server201:~]$ls /var/lib/mysql/
asterisk asteriskcdrdb bgcrm ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock
[root@server201:~]$
如果是配置过主从,那么需要清理如下红色标记的文件:
[root@server201:~]$ls /var/lib/mysql/
asterisk bgcrm ib_logfile0 ):
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=):
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id= | | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
7、**配置从服务器Slave【注意这里是配置从服务器的,要在从服务器上执行,不要搞错了】:
mysql>change master to master_host='192.168.1.',master_user='',master_log_file='mysql-bin.',master_log_pos=; //注意不要断开,“237”无单引号。
Mysql>start slave; //启动从服务器复制功能
8、检查从服务器复制功能状态:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event //说明配置成功
Master_Host: 192.168.2.222 //主服务器地址
Master_User: myrync //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于>=Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
......
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,主从服务器配置完成。
9、主从服务器测试:
主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:
mysql> create database test_db;
Query OK, 1 row affected (0.00 sec)
mysql> use test_db;
Database changed
mysql> create table test_tb(id int(3),name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test_tb values(001,'aaa');
Query OK, 1 row affected (0.00 sec)
下面在从服务器上面查询是否创建了数据库和表,表里面是否有记录。
10、完成:
编写一shell脚本,用nagios监控slave的两个“yes”,如发现只有一个或零个“yes”,就表明主从有问题了,发短信警报吧。
==============================================
第二、mysql主从复制(互为主从)
参考文章:
http://blog.csdn.net/lgg201/article/details/5761870
http://flash520.blog.163.com/blog/static/3441447520101029114016823/
http://369369.blog.51cto.com/319630/790921
优点:
1. mysql的主从复制的主要优点是同步"备份", 在从机上的数据库就相当于一个(基本实时)备份库.
2. 在主从复制基础上, 通过mysqlproxy可以做到读写分离, 由从机分担一些查询压力.
3. 做一个双向的主从复制, 两台机器互相为主机从机, 这样, 在任何一个机器的库中写入, 都会"实时"同步到另一台机器, 双向的优点在于当一台主机发生故障时, 另一台主机可以快速的切换过来继续服务.
步骤:
1. 在两台机器上分别添加一个用于从机访问的帐号, 赋予REPLICATION SLAVE权限.
#)运行:
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.' IDENTIFIED BY '000000';
第一台服务器(IP: 192.168.1.)运行:
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.' IDENTIFIED BY '000000';
2.修改配置文件,配置服务器编号, 开启bin-log
当使用的是ubuntu的时候, 需要注意一点, /etc/mysql/my.cnf配置文件下的bind-address = 127.0.0.1这一行需要注释, 不然从机在请求时是连接不到的.
编辑/etc/my.cnf
找到[mysqld]这个标签,
在它的下面有两行
#server-id = ##或者202
#log_bin = | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql>
在202服务器上如下:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql>
5. 分别',master_user='slave',master_password='000000',master_log_file='mysql-bin.000001',master_log_pos=237;
和
change master to master_host='192.168.1.',master_user='slave',master_password='000000',master_log_file='mysql-bin.000001',master_log_pos=237;
6. 开启同步
START SLAVE;
7. 验证正确性
SHOW SLAVE STATUS \G;
如果返回的结果第一列是Waiting for master to send event或者Queueing就说明配置是正确的, 当然, 还可能会有其他的信息也是正确的, 只不过我这里没有收集到...呵呵
如下:
mysql> SHOW SLAVE STATUS \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.202
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 237
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000001
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: 237
Relay_Log_Space: 235
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
1 row in set (0.00 sec)
ERROR:
No query specified
mysql>
验证,略
mysql主从复制——双机互为主从的更多相关文章
- Mysql主从复制的配置(双机互为主从)
目的: 让两台mysql服务器可以互为主从提供同步服务. 优点: 1. mysql的主从复制的主要优点是同步"备份", 在从机上的数据库就相当于一个(基本实时)备份库. 2. 在主 ...
- CentOS双机中Docker下安装Mysql并配置互为主从模式
CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...
- mysql双主互为主从配置
在使用双主互为主从的模式前提是互为主从的两个数据库,表的主键必须是自增的. 环境不多说了 ,多台mysql单实例或单台多实例都可以.多实例的配置请参考:https://www.cnblogs.com/ ...
- mysql主从复制问题之主从两端binlog日志不同步解决方案
主操作: 进入主的数据库查看状态: mysql> show master statusG; *************************** 1. row **************** ...
- mysql 主从复制以及binlog 测试
###mysql查看binlog日志内容 https://blog.csdn.net/nuli888/article/details/52106910 mysql的binlog日志位置可通过show ...
- MySQL高可用之——keepalived+互为主从
目标:配置一个keepalived双机热备架构,并配置主从复制 规划: master1 zlm177 192.168.17.177 master2 zlm188 192 ...
- Mycat+Mysql主从复制实现双机热备
Mycat+Mysql主从复制实现双机热备 一.mysql主从配置原理 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据 ...
- Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从 一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...
- MySQL主从复制,以及双机热备
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...
随机推荐
- js中定时器
周期性定时器:周期性的执行某段代码 window.setInterval() window.clearInterval() 示例: document.it = setInterval(fun ...
- CS231n 斯坦福深度视觉识别课 学习笔记(完结)
课程地址 第1章 CS231n课程介绍 ---1.1 计算机视觉概述 这门课的主要内容是计算机视觉.它是一门需要涉及很多其他科目知识的学科. 视觉数据占据了互联网的绝大多数,但是它们很难利用. --- ...
- java语法基础练习
1.阅读示例: EnumTest.java,并运行.分析结果 代码: public class EnumTest { public static void main(String[] args) { ...
- java BeanUtils.copyProperties
github搜索关键词: copyPropertiesIgnore https://github.com/longyi97/GA/blob/997e9c3a467268041c186234d91c4e ...
- 有用的sql语句积累
⑴. sql查询未被外键关联的数据 select * from bb b where not exists (select 1 from aa a where a.bid=b.bid)
- Nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用
nginx可以通过limit_conn_zone 和limit_req_zone两个组件来对客户端访问目录和文件的访问频率和次数进行限制,另外还可以善用进行服务安全加固,两个模块都能够对客户端访问进行 ...
- test20180902 day1
试题限制均为256MB,1Sec 总分:250 试题一 谜题 首先请解以下谜题:车下的数字是什么? 正确的答案是 87 .这道题对小龙大犇来说太轻松了,于是他想加强难度来考考你:对于给定的长度 N,能 ...
- Properties类与配置文件
//加载文件public static void testLoadProperties() throws Exception { Properties properties = new Propert ...
- Java JDK 版本的区别
jdk6和jdk5相比的新特性有: 1.instrumentation 在 Java SE 6 里面,instrumentation 包被赋予了更强大的功能:启动后的 instrument.本地代码 ...
- [Python] 中文路径和中文文本文件乱码问题
情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行 ...