Mysql 主从同步配置实例

*两台Linux服务器,一主一从,从数据库同步主数据库的数据

*系统:Centos 6.4-64bit

*主(master)数据库服务器IP地址:192.168.100.200

*从 (slave )数据库服务器IP地址:192.168.100.201

*本实验用系统自带的rpm包安装,以提供mysql服务

1、分别在两台服务器上安装mysql服务

# yum -y install mysql mysq-server

# service mysqld start

# chkconfig mysqld on

2、配置主数据库

默认可以同步所有的库和表

# vi /etc/my.cnf    #添加如下参数

log-bin=mysqld-bin   #开启binlog日志,必须开启

server_id=200     #数据库ID值,唯一的,一般用本机的IP地址主机位

binlog-do-db=test    #设置从服务器可以同步的库test,有多个就写多行

binlog-ignore-db=mysql #设置不可以同步的库mysql

# service mysqld restart #重启服务

3、在主数据库授权从数据库连接自己,且有拷贝数据的权限

登录到主服务器并授权,授权的用户名是slaveuser,密码是123456

mysql>grant replication slave on *.* to [email protected] identified by‘123456‘;

4、在从服务器上验证授权是否成功

在从数据库上若能登录到主数据库,则说明授权成功了

# mysql -h192.168.100.200 -uslaveuser -p123456

mysql> show grants;              #查看用户slaveuser自己被授的权限

+---------------------------------------------------------------------------+

| Grants for [email protected]  |

+---------------------------------------------------------------------------+

| GRANT REPLICATION SLAVE ON *.* TO ‘slaveuser‘@‘192.168.100.201‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |

+---------------------------------------------------------------------------+

5、查看主数据库服务器上有哪些从服务器

mysql> show slave hosts;    #从数据库还没配置,所以还看不到

6、配置从数据库

# vi /etc/my.cnf         #添加如下参数

log-bin=mysqld-bin        #开启binlog日志

server_id=201          #数据库ID号

report-host=localhost      #向主服务器报告自己主机名,主服务器查询时会知道是哪个从服务器

report-host=192.168.100.201  #向主服务器报告自己IP,主服务器查询时会知道是哪个从服务器

slave-net-timeout=60       #主从网络中断时,等待60秒自动连接

read_only=1             #只读模式(同步与super权限用户例外)

注:若想限制同步的库,参数格式如下

replicate-do-db=“数据库名”       #允许同步的库

replicate-ignore-db=“数据库名”    #不允许同步的库

# service mysqld restart

重启完从数据库,此时,就可以登录主数据库查看主数据库服务器上有哪些从服务器,如下

mysql> show slave hosts;

+-----------+-----------------+------+-------------------+-----------+

| Server_id | Host        | Port | Rpl_recovery_rank | Master_id |

+-----------+-----------------+------+-------------------+-----------+

| 201     | 192.168.100.201 | 3306 |       0     |    200  |

+-----------+-----------------+------+-------------------+-----------+

7、登录主数据库,查看主数据库状态里当前使用的binlog和偏移量

mysql> show master status;    #显示主数据库服务器的状态

+-------------------+----------+--------------+------------------+

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

| mysqld-bin.000004 | 120    |          |            |

+-------------------+----------+--------------+------------------+

File和Postion对应的值mysqld-bin.000004和334要记录下来,下面步骤要用到

说明:

File           #正在使用的binlog日志

Position         #正在使用binlog日志的偏移量,如图含义是从偏移量位置120开始记录

Binlog_DO_DB      #显示准许同步复制的库

Binlog_Ignore_DB   #显示不准许同步复制的库

Executed_Gtid_Set  #跟binlog日志相似,都是用来主从同步的,默认关闭,两个用一个就可以.

开启Gtid:       #没特殊要求不开启

vim  /etc/my.cnf

gtid_mode=on

8、从数据库连接主数据库(从数据库上操作)

mysql>change master to

->master_host="192.168.100.200",       #主数据库的IP地址

->master_user="slaveuser",           #主数据库上授权的用户

->master_password="123456",          #授权用户的密码

->master_log_file="localhost-bin.000001", #上一步中File字段里的binlog日志

->master_log_pos=120;              #上一步中Postion字段里的偏移量

操作完以上命令,/var/lib/mysql/下会生成4个文件

ls /var/lib/mysql

master.info              #连接主数据库服务器的配置信息

relay-log.info          #中继日志信息

localhost-relay-bin.000001    #中继日志文件,是主复制过来的日志文件叫中继

localhost-relay-bin.index     #中继日志文件列表

9、登录从数据库,开启从数据库里的server_IO与server_SQL进程

mysql>start slave;      #开启I0和SQL(停止用:stop slave)

mysql>show slave status\G; #查看I0和SQL进程状态

Slave_IO_Running:  YES   #必须开启状态

Slave_SQL_Running:  YES  #必须开启状态

>只有IO-Running和SQL_Running同时为YES,主从才能同步

>执行start slave后,若Slave_IO_Running还是NO状态,1分钟后再查看

10、验证主从是否能同步

登录主数据库并在库test下创建表student

mysql>use test;

mysql>create table student(name char(3),birthday date); #创建表student

mysql> desc student;                        #查看表结构

+----------+---------+------+-----+---------+-------+

| Field   | Type    | Null | Key | Default | Extra |

+----------+---------+------+-----+---------+-------+

| name    | char(3) | YES  |     | NULL |      |

| birthday | date    | YES  |     | NULL|      |

+----------+---------+------+-----+---------+-------+

登录从数据库,查看是否同步了主数据库创建的表student,如下所示,说明主从能同步了。

mysql>use test;

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| student     |

+----------------+

完毕,谢谢。

时间: 2024-10-06 12:59:16

Mysql 主从同步配置实例的相关文章

企业生产MySQL主从同步配置

MySQL主从同步配置 前言:测试环境 一台mysql多个实例 主机IP地址 10.0.0.52 Master   3306 Salve    3307 一.主库要开启binlog服务 1. 1修改配置文件3306/my.cnf [[email protected] ~]# egrep "log-bin|server-id" /data/3306/my.cnf   log-bin = /data/3306/mysql-bin server-id = 1 1. 2查看主库有没有开启bin

centos下MySQL主从同步配置

centos下MySQL主从同步配置一.环境 主机: master操作系统:centos 5.3 IP:192.168.1.222 MySQL版本:5.0.77 从机: slave操作系统:centos 5.3 IP:192.168.1.220 MySQL版本:5.0.77 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create database repl; 三.master机和slave机的相关配置 1.修改master机器

CentOS之MYSQL主从同步配置

一.主机master与salver均关闭防火墙iptables,执行service iptables stop命令: 设置SELINUX文件的SELINUX=disabled,如图所示: 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create database repl; 在/usr/local/mysql目录下建立MYSQL复制的日志配置文件/usr/local/mysql/mysql-bin.log并赋予权限以及改变文件的

MySQL主从同步配置实现数据库备份

作为数据库的主要备份手段,主从同步能实现从主库(即当前使用的业务数据库)异步同步数据到从库(备份库),当主库数据库或主机出现当机不能启动时,可以通过切换到从库实现业务系统的快速恢复. 首先介绍一下我的环境,我有一个已经使用中的MySQL数据库A,然后我新装了一台MySQL数据库B作为A的从库. 一.master库A设置 先修改mysql的配置 vim /etc/my.cnf 插入下面2行 server-id=1   #这个ID是唯一的,不能和其他的主库或者从库一样 log-bin=mysql-b

Linux下MySQL主从同步配置

Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一.主服务器相关配置 1.创建同步账户并指定服务器地址 [[email protected] ~]mysql -uroot -p mysql>use mysql mysql>grant replication slave on *.* to 'testuser'@'192.168.1.102' ide

Mysql主从同步配置方案(Centos7)

最近在做项目高可用时,需要使用数据同步.由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Master-Slave同步). 可能没有接触过Mysql数据同步时,可能会觉得数据同步很难,但你按照如下操作一遍之后,会发现原来同步如此简单,毕竟我们只需要会配置,会排查问题,底层具体实现Mysql团队早帮忙实现了.废话不多说,直入话题: (1)首先,保证有两台设备(主.从),分别在两台设备上安装Mysql数据库.安装完成之后, 使用mysql -u[数据库用户名]

Mysql 主从同步配置

工作用MySQL数据库配置了主从同步,但是不知道为啥同步失效了.工作环境不能随便操作,我就在本地上搭建了主从同步的环境. 备份用的工具是Xtrabackup,安装及使用教程见<innobackupex实现MySQL数据库的备份与恢复>. 1.数据库环境 主库(Master):192.168.126.150 从库(Slave):192.168.126.151 数据库版本:5.5.32 2.修改my.cnf文件 1)修改主服务器master: #vi /etc/my.cnf [mysqld] lo

mac下mysql主从同步配置

一.环境说明 两台mac,mysql环境master是5.7.20,slave是5.7.21 master IP: 172.21.127.10 slave IP:172.21.127.12 二.master机器配置 1.更改配置文件 # Default Homebrew MySQL server config [mysqld] # Only allow connections from localhost bind-address = 172.21.127.10 log-error=/var/l

mysql主从同步配置详解

mysql的主从配置参考了不少文章,有的讲的很模糊,有的讲的是老版本,与当下流行的版本有很大出入,配置的过程中各种报错,在把一个一个的坑填完后,这里总结一份比较详细的正确配置步骤. 环境: 操作系统为64位windows10,mysql版本为5.7 主(master):192.168.94.23 端口:3308 从(slave):192.168.94.23 端口:3309 将事先下载好的5.7版本的mysql,复制两份,分别重命名mysql2(主库)和mysql3(从库), 官网下载地址:htt