mysql主从同步测试_mysql 主从同步测试

测试环境

系统:WIN 10

MySQL版本:mysql-5.7.23

安装配置

解压文件

使用mysql-5.7.23-winx64.zip包解压缩安装

路径分别为:

D:\mysql\mysql-5.7.23-winx64

D:\mysql\mysql-5.7.23-winx64-3307

解压安装路径随意指定,注意需要与my.ini文件中的路径一致

my.ini配置文件

分别在两个目录中创建my.ini 文件

在同一台机器上测试,mysql实例使用不同端口

主数据库:3306 (默认)

从数据库:3307

内容如下:

主库my.ini

[mysqld]

# set basedir to your installation path

basedir=D:/mysql/mysql-5.7.23-winx64

# set datadir to the location of your data directory

datadir=D:/mysql/mysql-5.7.23-winx64/data

# 唯一标识

server-id=1

# binlog文件名(可以不指定)

log-bin=mysql-binlog

# 要写binlog的数据库,要同步多个数据库,就多加几个binlog-do-db=数据库名

binlog-do-db=mstest

binlog-do-db=test

# 要忽略的数据库

binlog-ignore-db=mysql

从库my.ini

[mysqld]

# 指定端口

port=3307

# set basedir to your installation path

basedir=D:/mysql/mysql-5.7.23-winx64-3307

# set datadir to the location of your data directory

datadir=D:/mysql/mysql-5.7.23-winx64-3307/data

# 唯一标识

server-id=2

# 要复制多个数据库,就多加几个replicate-do-db=数据库名

replicate-do-db=mstest

replicate-do-db=test

# 要忽略的数据库

replicate-ignore-db=mysql

初始化并启动数据库

分别初始化、启动两个数据库,并修改root密码

mysqld --initialize --console

mysqld.exe --console

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

具体见安装文档

数据库配置

主库配置

登录主库

>mysql -uroot -p

主数据库创建用于同步的用户

GRANT REPLICATION SLAVE ON *.* TO 'mstest'@'%' IDENTIFIED BY '123456';

从数据库配置

登录从库,指定端口3307

>mysql -uroot -p -P3307

配置从库连接到主库

change master to master_host='127.0.0.1',master_port=3306,

master_user='mstest',master_password='123456';

start slave;

查看状态

主库

mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-binlog.000002 | 313 | mstest,test | mysql | |

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

1 row in set (0.00 sec)

从库

mysql> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 127.0.0.1

Master_User: mstest

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-binlog.000002

Read_Master_Log_Pos: 1306

Relay_Log_File: wwh-relay-bin.000005

Relay_Log_Pos: 323

Relay_Master_Log_File: mysql-binlog.000002

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: mstest,test

Replicate_Ignore_DB: mysql

......

......

......

Master_Server_Id: 1

Master_UUID: ea65d565-a8a0-11e8-807e-0a002700000a

Master_Info_File: D:\mysql\mysql-5.7.23-winx64-3307\data\master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates

Master_Retry_Count: 86400

......

......

1 row in set (0.00 sec)

同步测试

创建数据库

主库创建表,从库查看

主库插入记录,从库查看

mysql> create database test;

Query OK, 1 row affected (0.01 sec)

mysql> show databases;

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

| Database |

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

| information_schema |

| mysql |

| performance_schema |

| sys |

| test |

| wwh |

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

6 rows in set (0.00 sec)

mysql> status;

--------------

mysql Ver 14.14 Distrib 5.7.23, for Win64 (x86_64)

Connection id: 2

Current database:

Current user: root@localhost

SSL: Not in use

Using delimiter: ;

Server version: 5.7.23 MySQL Community Server (GPL)

Protocol version: 10

Connection: localhost via TCP/IP

Server characterset: latin1

Db characterset: latin1

Client characterset: gbk

Conn. characterset: gbk

TCP port: 3307

Uptime: 7 min 37 sec

show binlog events\G

show master status\G

查询命令

在master上查看当前有多少个从节点

select * from information_schema.processlist as p where p.command = 'Binlog Dump';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 主从复制是一种非常重要且常用的数据同步方式,对于数据库管理员来说,保证主从同步的正常运行对于数据库的可靠性和稳定性都是非常重要的。当我们在使用 MySQL 主从同步时,如果发现 slave_io_running:no 的情况,那么意味着 MySQL 从服务器的 IO 线程停止了工作。 IO 线程是 MySQL 主从复制中非常重要的一个组件,它的作用是从主服务器上读取二进制数据,并将其传输到从服务器上。如果 IO 线程出现问题,那么意味着从服务器无法从主服务器获取新的数据,从而导致从服务器无法同步主服务器的数据。 在出现 slave_io_running:no 的情况时,我们需要立即查找 IO 线程出现问题的原因,并进行解决。以下是常见的 IO 线程故障原因及对应解决方案: 1. 网络问题。如果主服务器和从服务器之间的网络出现了问题,那么 IO 线程就无法正常工作。我们可以通过检查网络连接以及网络质量来解决这个问题。 2. DNS 解析错误。如果主服务器和从服务器之间使用的是主机名进行通信,那么可能出现 DNS 解析错误的情况。我们需要检查主机名是否正确,以及 DNS 解析是否正常。 3. 权限问题。如果从服务器的用户权限不正确,那么也可能会导致 IO 线程无法正常工作。我们需要检查从服务器的用户权限是否足够,以及是否正确配置了主从服务器之间的连接信息。 4. 数据库配置问题。如果从服务器的数据库配置不正确,那么也可能会导致 IO 线程无法正常工作。我们需要检查从服务器的数据库配置是否正确,并根据需要进行更改。 总的来说,当出现 slave_io_running:no 的情况时,我们需要立即对问题进行排查和解决,以便尽快恢复 MySQL 主从同步的正常运行。在排查问题过程中,我们需要充分了解 MySQL 主从复制的工作原理,熟悉常见的故障原因,并加强对 MySQL 数据库的日常维护和管理工作,以提高数据库的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值