一台windows安装两台mysql并配置主从复制

本文详细介绍了如何在Windows上安装两台MySQL并配置主从复制。首先,从MySQL官网下载zip格式的安装包,解压后分别命名为mysql1和mysql2。接着,配置主MySQL服务器,包括修改my.ini文件,开启二进制日志,创建具有主从复制权限的新用户,并查看主服务状态。然后,配置从MySQL服务器,更改my.ini文件,设置复制参数,启动slave复制功能。最后,验证主从复制是否成功,确保Slave_IO_Running和Slave_SQL_Running都为Yes。
摘要由CSDN通过智能技术生成

注意:mysql主从复制,主从版本要一致!正常情况下,主从mysql应该安装在两台服务器上

1.下载mysql的安装包

mysql官网:http://dev.mysql.com/downloads/mysql/

这里会有msi格式的和zip格式,msi格式的需要点击安装,这里不讲这个,接下来讲的是zip格式。

2.解压mysql的zip包

解压 zip 压缩文件,得到 一个文件夹 ,将其拷贝到你想要放的目录(比如我是放在D:/tools/mysql下
复制两份),然后分别将文件夹重命名为 mysql1 和 mysql2 。

3.安装主mysql

找到mysql1的配置文件模板D:\tools\mysql\mysql1 目录下的 my-default.ini,重命名为 my.ini,在 [mysqld] 标签下添加如下代码:

[mysqld] 
basedir = D:\tools\mysql\mysql1
datadir = D:\tools\mysql\mysql1\data
binlog-do-db=test 
binlog-ignore-db=mysql 
log-bin=mysql-bin

注:
binlog-do-db=test 表示需要备份的数据库为test
*binlog-ignore-db=mysql 表示不需要备份的数据库为mysql
如果两个都不设的话,从服务器会复制主服务器的全部数据库
log-bin=mysql-bin 表示开启二进制日志,并把二进制日志前缀改为mysql-bin

其他的不用修改保存my.ini文件,然后以管理员的身份运行cmd,将工作目录切换到D:\tools\mysql\mysql1\bin下,运行

mysql -install

如果提示“Service successfully installed”,则说明mysql服务安装成功,默认的服务名称为MySQL,端口号为3306,密码默认为空
连接mysql主服务器

mysql -uroot -p -P3306

然后创建新用户:

create user 'mytest'@'127.0.0.1' identified by '123456';

注:
@后面的ip地址为允许连接的客户端的ip地址。mytest是用户名,123456是密码

然后,给新用户配置主从复制的权限:

grant replication slave on *.* to 'mytest'@'127.0.0.1' identified by '123456';

注:
@后面的ip地址为允许连接的客户端的ip地址,如果改为 ‘%’,就表示客户端没有ip地址的限制

然后查看主服务master的状态:
mysql> show master status;

+——————+———-+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000003 | 106 | test | mysql | |
+——————+———-+————–+——————+——————-+

注意:
记住file,和position,因为等下配置从数据库的时候会用到

4.安装从mysql

找到mysql2的配置文件模板D:\tools\mysql\mysql2 目录下的 my-default.ini,重命名为 my.ini,并修改如下这几项:

[client]
port = 3307
[mysqld]
port= 3307
basedir=D:\tools\mysql\mysql2
datadir=D:\tools\mysql\mysql2\data 
server-id = 2

保存my.ini后,用 管理员身份 运行cmd,并切换到D:\tools\mysql\mysql2\bin目录下,运行

mysqld install MySQL2  --defaults-file="D:\tools\mysql\mysql2\my.ini"

如果提示“Service successfully installed”则说明安装成功了,这时候我们连接从myslq

mysql -uroot -p -P3307

配置复制的参数:
change master to master_host=’127.0.0.1’,master_user=’mytest’,master_password=’123456’,master_port=3306,master_log_file=’mysql-bin.000003’,master_log_pos=106;

参数详解:
master_host: 主服务器的IP
master_user: 主服务器上新创建的用户名
master_password: 用户的密码
master_port: 主服务器的端口,如果未曾修改,默认即可。
master_log_file: 主服务器二进制日志文件的名称,填写查看主服务器的master状态时显示的File的值
master_log_pos: 日志的位置,填写查看主服务器的master状态时显示的Position的值

启动从服务的slave复制功能:

start slave;

查看从服务器的slave状态:

show slave status \G

***************** 1. row *****************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: mytest
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 106
Relay_Log_File: DESKTOP-DMGAKUM-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0

如果 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes,则说明主从复制的所有配置已成功,即从服务器已经可以自动与主服务器的数据库数据实现同步了。
此后,只要主服务器的数据有更新(比如:在 test数据库中新建了一张表或者表中的数据发生了变化),从服务器都会自动与主服务器保持一致。但如果有人刻意改变了从服务器的数据,主服务器中的数据并不会同步更新,除非我们把这两个MySQL服务器设置为互为主从。

注:
如果有任一个显示NO,则证明同步有问题。可以查看数据库日志文件,里面基本上会显示出错误之处,根据错误一步一步排查,基本上都可以解决的。数据库日志在data目录下,错误日志的后缀是.err

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值