Mysql5.7 主从复制配置

1、环境

Centos 7

Mysql 5.7

Master  192.168.1.71

Slave01 192.168.1.72

2、分别配置master,slave01

# vi /etc/my.cnf

[mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志                                        ------新增
       server-id=71      //[必须]服务器唯一ID,slave01此处为72                  ------新增

3、重启master,slave01的mysql服务

#systemctl restart mysqld.service

注意该命令为red hat/centos系统重启服务命令

4、在master服务器上,登陆mysql,并创建复制使用账户,并分配权限给该账户

[[email protected] ~]# mysql -u root -p

Enter password:

...

mysql> GRANT REPLICATION SLAVE ON *.* to ‘copier‘@‘%‘ identified by ‘copy123‘;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

5、查看master数据库的bin日志文件信息

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

6、在slave01服务器上,登陆mysql,连接master,启动复制

[[email protected] ~]# mysql -u root -p

Enter password:

...

mysql> change master to master_host=‘192.168.1.71‘,master_user=‘copier‘,master_password=‘copy123‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=439; Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave; Query OK, 0 rows affected (0.00 sec)

mysql>

7、在slave01查看复制状态

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 192.168.1.71
                  Master_User: copier
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 439
               Relay_Log_File: slave01-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Connecting
            Slave_SQL_Running: Yes
       ...
1 row in set (0.00 sec)

发现 Slave_IO_State为 Connecting to master,一直在连接Master,检查网络

[[email protected] ~]# telnet 192.168.1.71 3306
Trying 192.168.1.71...
telnet: connect to address 192.168.1.71: No route to host

说明master禁止对端口3306访问,需要对端口3306开发,开放后

如在master上执行

[[email protected] ~]#  firewall-cmd --add-port=3306/tcp --permanent

[[email protected] ~]# firewall-cmd --reload

再在slave01上查看状态
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event

...

8、测试

在master服务上,登陆mysql ,测试以下数据

mysql> create database helloDb;

Query OK, 1 row affected (0.01 sec)

mysql> use helloDb;

Database changed

mysql> create table helloword(id int,name varchar(10));

Query OK, 0 rows affected (0.01 sec)

mysql> insert into helloword values(1,‘test‘);

Query OK, 1 row affected (0.01 sec)

mysql> insert into helloword values(2,‘hi‘);

Query OK, 1 row affected (0.01 sec)

mysql> select * from helloword;

+------+------+
| id   | name |
+------+------+
|    1 | test |
|    2 | hi   |
+------+------+

2 rows in set (0.00 sec)

在slave01上,登陆mysql ,测试以下数据

mysql> show databases;

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

| Database           |

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

| information_schema |

| helloDb            |

| mysql              |

| performance_schema |

| sys                |

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

5 rows in set (0.03 sec)

mysql> use helloDb;

Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select * from helloword;

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

| id   | name |

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

|    1 | test |

|    2 | hi   |

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

2 rows in set (0.00 sec)

至此主从复制配置成功。

时间: 2024-10-13 13:17:11

Mysql5.7 主从复制配置的相关文章

Mysql5.7主从复制配置文档

安装的数据是mysql5.7社区版本yum安装,官网有下载地址 wget https://repo.mysql.com//mysql57-community-release-el7-10.noarch.rpm 注意事项: 防火墙,命令引号. 主服务器 [[email protected] opt]# egrep -v "^$|#" /etc/my.cnf 红色部分为添加 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysq

mysql5.5主从复制配置

主数据库IP: inet addr:10.116.10.50; Bcast:10.116.10.255; Mask:255.255.255.0 从数据库IP: inet addr:10.116.10.89; Bcast:10.116.10.255; Mask:255.255.255.0 一.建立专门用于Replication的账号 两台服务器同步的用户名: test  密码:[email protected] 主从服务器均设置repl账户: mysql> GRANT REPLICATION SL

MySQL5.7 Replication主从复制配置教程

最近配置mysql5.7主从复制的时候碰到了些问题,老老实实按老版本的步骤配置会有错误,所以下面介绍一下5.7的配置步骤, 大体步骤跟老版本的还是一样的,只是有一些小区别,不说了,言归正传. 官方文档:http://dev.mysql.com/doc/refman/5.7/en/replication.html 系统环境:win7 我只安装了核心的server,其他配套工具没安装.安装后发现根目录下有一个my-default.ini文件,我就把该文件改名成my.ini,打开这个文件文件内容如下

mysql5.6 主从复制,详细配置

环境:Centos 6.5 mysql5.6 采用的是虚拟机环境 master ip:192.168.17.140 slaver ip:192.168.17.141 下面开始配置: master的配置: 1.注意下图的箭头: 2:重新启动mysql服务 shell: service mysqld restart 3.看下图: 命令如下: mysql -u root -p grant replication slave,replication client on *.* to 'root'@'19

mysql5.7.26做主从复制配置

一.首先两台服务器安装好mysql数据库环境 参照linux rpm方式安装mysql5.1 https://www.cnblogs.com/sky-cheng/p/10564604.html 二.主库master上创建主从复制账号 mysql> grant replication slave,replication client on *.* to 'repl'@'%' identified by '[email protected]'; Query OK, 0 rows affected,

MySQL5.6主从复制最佳实践

MySQL5.6     主从复制的配置 环境 操作系统:CentOS-6.6-x86_64 MySQL 版本:mysql-5.6.26.tar.gz 主节点 IP:192.168.31.57        主机名:edu-mysql-01 从节点 IP:192.168.31.59        主机名:edu-mysql-02 MySQL 主从复制官方文档 http://dev.mysql.com/doc/refman/5.6/en/replication.htm l MySQL 主从复制(也

mysql5.5 主从配置

Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务.(1)首先确保主从服务器上的Mysql版本相同(2)在主服务器上,设置一个从数据库的账户,使用REPLICATION SLAVE赋予权限,如:mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'172.16.10.143' IDENTIFIED BY '123456';Query OK, 0 rows affe

mysql5.7主从复制--在线变更复制类型【转】

这里说一下关于如何在线变更复制类型(日志复制到全局事物复制),参考课程:mysql5.7复制实战 先决条件     (1)集群中所有的服务器版本均高于5.7.6(2)集群中所有的服务器gtid_mode都设置为off(使用 show variables like 'gtid_mode' 命令查看) 1:将基于日志的复制变更为基于事物的复制处理步骤     (1) 设置参数   gtid_mode在5.7版本有一下4个值   off:关闭   off_permissive:准备关闭   on_pe

mysql 5.5主从复制配置

首先将主库现有的要实现主从的数据库原原本本地复制到从库上,目的是一开始就让主从同步,让binlog日志从最新的记录开始同步! 备份: 1 导出所有库 系统命令行 mysqldump -uusername -ppassword --all-databases > all.sql 2 导入所有库 mysql命令行 mysql>source all.sql; 远程复制:将192.168.80.145上的test.sql拷到本机上 scp 192.168.80.145:/tmp/test.sql /t