mysql5.7主从同步配置

1. 准备工作

先安装、配置好两台MySQL服务器

主服务器IP:192.168.1.1

从服务器IP:192.168.1.2

mysql的安装请参考之前的文章。

2. 配置主(master)
vi /etc/my.cnf
修改或添加下面这几行:
server-id=1

log-bin=mysql-bin # 启用二进制日志

两个可选参数(2选1):
binlog-do-db=db1,db2 #需要同步的库
binlog-ignore-db=db1,db2 #忽略不同步的库

保存后重启

/etc/init.d/mysqld restart

运行mysql客户端
mysql -uroot -p

创建同步账号

grant replication slave on *.* to ‘repl‘@‘192.168.1.2‘ identified by ‘1234‘;
flush privileges;

锁表,不让数据写入

flush tables with read lock;
show master status;

记录下二进制日志文件名和位置

备份数据库

在master上执行
mysqldump -uroot -p db1 > back.sql;

把备份好的数据拷贝到从服务器

scp back.sql 192.168.1.2:~

3. 配置从(slave)

把主服务器备份的数据导入从服务器

在slave上执行
[[email protected] ~]# mysqldump -uroot -p db1 < back.sql

vi /etc/my.cnf
修改或增加:
server-id=2 #这个数值不能和主一样
可选参数(2选1,这两个参数设置成和主一样):
replicate-do-db=db1,db2
replicate-ignore-db=db1,db2

service mysqld restart

运行mysql客户端

mysql -uroot -p

执行以下命令
stop slave; (根据mysql官方手册的说明,5.5之前是slave stop,5.6之后改为stop slave)
change master to master_host=‘192.168.1.1‘, master_user=‘repl‘, master_password=‘1234‘,master_log_file=‘mysql-bin.000001‘, master_log_pos=2757;
start slave; (master_log_file和master_log_pos填上刚才记录下的二进制日志文件名和位置)

查看从的状态: show slave status\G

完成后取消主服务器数据库的锁定

在主上执行
mysql> unlock tables

4. 验证主从复制效果

在主服务器上创建数据库test_db

create database test_db;

在主服务器上创建表test_tb

use test_db;

create table test_tb(id int(3),name char(10));

写入一行记录

insert into test_tb values(001,"test");

在从服务器上查看

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
| test_db            |
| www                |
+--------------------+

7 rows in set (0.00 sec)

数据库test_db已经自动创建了

mysql> select * from test_db.test_tb;
+------+------+
| id   | name |
+------+------+
|    1 | test |
+------+------+
1 row in set (0.00 sec)

表里的数据也已经自动复制过来了,说明主从同步配置成功。



配置mysql主从时,如果显示下列错误:

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

这是因为mysql是克隆过来的,或者拷贝整个data目录时把auto.cnf文件也拷贝过来了,导致主从mysql uuid相同, Slave_IO无法启动。

解决办法:修改mysql data 目录下auto.cnf 文件中uuid的值,或者删除auto.cnf文件后重启mysql服务让它自动生成新的uuid值。

时间: 2024-10-29 11:41:31

mysql5.7主从同步配置的相关文章

mysql5.6 主从同步配置

一:配置前说明 在centos 6环境下配置 mysql 5.6主从同步 准备两台测试的虚拟机,2台虚拟机上都安装mysql软件,并开启mysql服务主master : 192.168.1.110从slave : 192.168.1.109 二:配置主库 1: 授权给从数据库服务器 mysql> grant replication slave on *.* to 'rep1'@'192.168.1.109' identified by 'test123456'; Query OK, 0 rows

mysql5.7.17主从同步配置

一.mysql同步原理 1.mysql主库在事务提交时将数据变更作为时间记录到二进制日志(binary log)中: 2.slave IO线程将master的binary log events读写到它的中继(Relay log): 3.slave SQL进程读取Relay log,将重做记录数据到数据库中. 二.主从同步配置 2,1.配置环境 masterIP:192.168.152.128 mysql version:5.7.17 本地多实例配置  端口为3307.3308. 前期已配置多实例

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

Linux服务器集群架构部署搭建(六)数据库服务器MySQL编译安装及主从同步配置(1)

命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想. 作者:燁未央_Estelle声明:测试学习,不足之处,欢迎指正. 第一章 数据库企业应用场景 1.1 数据库的企业应用 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小.速度快.总

mysql5.5主从同步排错

Slave_SQL_Running: No mysql同步故障解决方法 Slave_SQL_Running: No mysql同步故障解决今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: NoLast_Errno: 1062....Seconds_Behind_Master:NULL原因:1.程序可能在slave上进行了写操作2.也可能是

Mysql 5.6主从同步配置

主从同步,本质是利用数据库日志,将主库数据复制一份到从库,本质上是使用了数据复制技术. 本文概要 主库的基本配置 从库的基本配置 完全同步的步骤 注意事项 工作原理 1. 主库的基本配置 做两件事:启用日志(记录数据库操作),赋予从库复制权限.配置如下: 启用日志: # sync_binlog=1 #默认为0,当 sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者

Linux下Mongodb数据库主从同步配置

说明: 有两台已经安装完成的Mongodb数据库服务器,现在需要把一台设置为主库,另一台设置为从库,实现主从同步. 操作系统:CentOS 7.0 64位 MongoDB数据库版本:mongodb-linux-x86_64-2.6.5 准备工作:MongoDB数据库安装 具体操作: 一.配置MongoDB主库 以下操作在MongoDB主库服务器上进行 1.cd  /usr/local/mongodb/ #进入MongoDB安装目录 vi /usr/local/mongodb/mongodb.co

企业生产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

MySQL Ubuntu 主从同步配置

MySQL Ubuntu 主从同步配置 一.在两台Linux机器上安装MySQL 二.Master主服务器配置(192.168.1.3) 1.编辑my.cnf编(命令查找文件位置:find / -name my.cnf) vi /etc/mysql/my.cnf 在[mysqld]中添加: server-id = 1 log_bin = master-bin log_bin_index = master-bin.index binlog_do_db = my_data binlog_ignore