MySQL主从设置

MySQL主从介绍

MySQL主从又叫做AB负责;也就是A和B两个机器做主从后,在A上些数据,另外一台B也能跟着些数据,两者数据实时同步;
MySQL主从是基于binlog的,主上必须开启binlog才能进行主从;
应用场景:备份使用,只使用主机器,从机器备份,当主机器宕机,切换从机器正常访问;分流使用,但从机器无法写数据;

步骤为:A设置配置文件-A重启服务-A创建主从账号-锁定A的数据库写功能-备份A所有数据库-B设置配置文件-B重启服务-将A备份文件传到B机器上-B上创建与A一样的数据库并将数据恢复成一摸一样-关闭B的同步功能-B设置同步参数-B开启同步-A解锁写功能;

主MySQL配置

设置配置文件

vim /etc/my.cnf
增加
server-id=2                    //增加server-id为2
log_bin=test01                //设置log_bin名为test01
/etc/init.d/mysqld restart            //重启mysql服务

创建test001数据库

其实可以省略此步骤,意思就是新建一个测试数据库test001,将mysql的内容复制到test001上

mysqldump -uroot -p123456 mysql > /tmp/mysql.sql      //备份mysql数据库
mysql -uroot -p123456 -e "create database test001"        //创建test001数据库
mysql -uroot -p123456 test001 < /tmp/mysql.sql            //将刚刚备份的mysql数据库的内容恢复到新建的test001上

创建主从mysql账号

mysql -uroot -p123456                //登录mysql,在mysql设置增加用户权限
grant replication slave on *.* to ‘repl‘@‘192.168.188.3‘ identified by ‘123456‘;        //创建用户repl限定为从ip登录,限定权限

锁定数据库写功能

在登录mysql中使用

flush tables with read lock;            //锁定数据库服务暂时无法写;
show master status;                    //查看主服务的位置与id

将所有数据库备份

mysqldump -uroot -p123456 zrlog > /tmp/zrlog.sql    //将zrlog数据库备份
mysqldump -uroot -p123456 mysql > /tmp/mysql.sql //将mysql数据库备份
mysqldump -uroot -p123456 test001 > /tmp/test001.sql //将test001数据库备份
mysqldump -uroot -p123456 db1 > /tmp/db1.sql //将db1数据库备份

从MySQL配置

设置配置文件

vim /etc/my.cnf
增加
server-id=3                //只增加一行server-id
/etc/init.d/mysqld restart        //重启mysql服务
scp 192.168.188.2:/tmp/*.sql /tmp/        //将主服务器上的备份传递到从机器的相应目录
mysql -uroot -p‘123456‘            //登录mysql

创建与主服务器相应数据库

create database test001;            //这里必须对应主服务器的数据库,A上有的B也必须创建;
create database db1;
create database zrlog;

恢复备份数据恢复到相应数据库下

mysql -uroot -p‘123456‘ db1 < /tmp/db1.sql
mysql -uroot -p‘123456‘ test001 < /tmp/test001.sql
mysql -uroot -p‘123456‘ zrlog < /tmp/zrlog.sql

关闭从服务的同步

stop slave;

设置同步参数

change master to master_host=‘192.168.188.2‘, master_user=‘repl‘, master_password=‘123456‘, master_log_file=‘test01.000001‘, master_log_pos=664383;

注意:这里的master_log_file与master_log_pos后面参数,分别是主服务器A的show master status;命令

mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| test01.000001 | 664383 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

开启从服务的同步

start slave;

解锁主服务的写功能

登录主服务器A的mysql

unlock tables;        //解锁主服务器的写功能

检测

show slave status\G            //只要看Slave_IO_Running与Slave_SQL_Running是否正常
drop database test001;        //主上删除test001数据库;
show databases;                //从上查看数据库列表,发现test001数据库消失;

注意:如果在从服务器上操作删除了东西,那么主从配置就自动断开;需要两方数据一致后,关闭同步功能,重新指定同步参数,再打开同步才行;


其他配置

vim /etc/my.cnf

主服务器(主上配置后,从不用配置)

binlog-do-db=            //仅同步指定数据库
binlog-ignore-db=        //忽略指定的数据库

从服务器(从配置后,主不用配置)

replicate_do_db=                //仅同步指定数据库
replicate_ignore_db=        //忽略指定的数据库
replicate_wild_do_table=        //如test.%,支持通配符%,同步指定更新某表
replicate_wild_ignore_table=    //忽略更新某表

原文地址:http://blog.51cto.com/shuzonglu/2094030

时间: 2024-10-29 15:08:41

MySQL主从设置的相关文章

源码安装mysql5.6.20&&mysql主从设置(多实例做多个主从)

一.源码安装mysql5.6.20 1.编译环境安装 yum install wget gcc* make openssl openssl-devel openssl-clients -y && yum groupinstall "Development Libraries" -y 2.源码下载(软件见Linux部署源码包) wget -P /usr/local/src/ http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.

【备忘】mysql主从设置

主(master)192.168.1.10机器设置: [[email protected] mysql]# vi my.cnf [mysqld]节点下添加以下配置server-id=1log-bin=mysql-bin #这个一定得设置,否则没有日志的话,从数据库上会报错 [[email protected] mysql]# /etc/init.d/mysql restartShutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! [[ema

centos7 mysql主从设置

已经装好了centos7和mysql,系统默认装多MariaDB 两个虚拟机ip 192.168.0.103 192.168.0.106 防火墙打开端口 permanent 参数表示永久修改 firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload 主库设置 mysql  -u root -p密码 进入mysql控制台,添加一个新的帐号,设定只有192.168.0段多ip才可以访问 创建tes

Mysql 主从设置

一.准备服务器 由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本. 我测试设置成功的服务器:主服务器(以下简称Master)的版本是3.23.58,从服务器(以下简称Slave)的版本是5.0.91,这个跨度应该算比较大了吧. Master主机名为:A(IP:192.168.0.1),Slave  主机名为:B(IP:192.168.0.2),2个M

Mysql主从,主从半同步,主主,mysql HA集群:Mysql-mha

简介:主从复制原理.机制 要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现.因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作. 复制的基本过程如下: 1).Slave上面的IO_thread连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容: 2).Master接收到来自Slave的IO_thread的请求后,通过负责复制的IO进程根据请求信息读取

LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案

方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor=50 worker.tomcat.cachesize=10 worker.tomcat.cache_timeout=600 worker.tomcat.socket_keepalive=1 worker.tomcat.socket_timeout=300 Linux内核优化: vi /etc/sysctl.conf   # 编辑sysctl.conf文件添加以下内容net.

centos 6.5设置mysql主从同步过程记录

在centos 6.5上设置了mysql主从功能,记录一下. 服务器1(主)IP:192.168.137.144系统版本:centos 6.5mysql版本:mysql 5.5 服务器2(从)IP:192.168.137.185系统版本:centos 6.5mysql版本:mysql 5.5 这里两台服务器的系统版本和mysql版本均一致,这也是官方推荐的做法.在开始设定之前,最好能确保主库和从库一致. 1.主库和从库创建同步用户 mysql> grant replication slave,

mysql简单的主从设置及问题解决

mysql简单的主从设置及问题解决 这周,本人因为工作需要,需要了解mysql如何设置主从关系,所以对这个新鲜的事物着手尝试了一下.其实网上有很多关于这个话题的文章,我也是在百度了很多文章后,终于成功的设置成功了.下面,就将一个简短易实践的过程分享给大家. 一.软件及环境 软件:MySql Server 5.6.21(主从版本尽量保持一致); 环境: 1.主机IP:192.168.10.34;主机port:3306 2.从机IP:192.168.10.35从机port:3306 二.配置过程 配

MySQL 主从数据库设置

1.复制的介绍 MySQL 支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引 以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置. 从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新. 请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行.否则,你必须要小心,以避免用户对主服务器