千家信息网

Windows7 x64 环境下 MySQL 5.7.29 主从环境搭建记录

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,一、MySQL 主从库安装1、进入 https://www.mysql.com 后点击DOWNLOADS 进入下载页面。2、进入下载页面后,选择 MySQL Community(GPL)Downloa
千家信息网最后更新 2025年01月29日Windows7 x64 环境下 MySQL 5.7.29 主从环境搭建记录

一、MySQL 主从库安装

1、进入 https://www.mysql.com 后点击DOWNLOADS 进入下载页面。

2、进入下载页面后,选择 MySQL Community(GPL)Downloads.

3、进入 MySQL Community(GPL) Downloads后选择 MySQLCommunity Server.

4、选择操作系统为Windows 此时最新的版本已经为8.0.19 可直接点击Download下载,为了保证稳定性,本次环境安装选择5.7.29版本,点击Looking for previous GA version?下载历史版本。


5、注意选择数据库版本、操作系统、以及软件位数选择;

6、选择正确后直接点击下载即可。

7、下载完成的软件直接解压后放置在不包含中文路径的文件夹下(自行新建my.ini文件)。

8、修改my.ini中数据如下(设置service-id 值以及 log-bin 值为后续主从搭建做准备), server-id表示唯一的标识某个数据库实例,若未配置log-bin则在执行show start master 后会出现 Empty set (0.01 sec)。

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

server-id = 1

#启用二进制日志

log-bin=mysql-bin

#设置3306端口

port = 3306

# 设置mysql的安装目录

basedir=D:\MySQL Server 5.7.29\mysql-5.7.29-winx64

# 设置mysql数据库的数据的存放目录

datadir=D:\MySQL Server 5.7.29\mysql-5.7.29-winx64\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

9、MySQL环境变量配置(计算机右键->属性->高级系统设置->环境变量)PATH中加入

;D:\MySQL Server 5.7.29\mysql-5.7.29-winx64\bin;

10、进入MySQL存放路径,在文件夹空白处,按住shift键后鼠标右键单击,出现"在此处打开命令窗口",后进入CMD窗口。

11、在相应的CMD窗口中输入:mysqld --install master --defaults-file=" D:\MySQL Server 5.7.29\mysql-5.7.29-winx64\my.ini" 进行安装,出现Service successfully installed,说明服务安装成功。注: 红色字体的master为主库mysql的服务名称,路径部分需根据各自情况自行进行修改。

也可能出现报错缺少计算机丢失MSVCP120.dll只需前往微软官网 https://www.microsoft.com/zh-CN/download/details.aspx?id=40784 下载Visual C++ Redistributable Packages for Visual Studio 2013安装后重新执行MySQL安装即可。

12、继续在当前CMD窗口执行 net start master 启动服务出现以下内容表示服务启动成功,至此主库安装完成,可以使用nactive连接对应的数据库,注用户名:root 、密码:空、 端口为my.ini中设置的端口。

13、连接主库无误后,接下来创建从库。复制一份主库文件,修改文件名为源文件夹名+从库需要设置的端口号,注:此处可根据个人情况修改,以两个数据库源文件之间容易区分为准。

14、从库文件复制成功后,进入D:\MySQL Server 5.7.29\mysql-5.7.29-winx64-3307 修改my.ini为以下文件,标红的需要注意,若service-id与主库一致时,启动主从关系时会报(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.),端口也需要修改否则执行安装时会报错,log-bin值也需设定否则会报错( Got fatal error 1236 from master when reading data from binary log)。

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

server-id = 2

#启用二进制日志

log-bin=mysql-bin

#设置3307端口

port = 3307

# 设置mysql的安装目录

basedir=D:\MySQL Server 5.7.29\mysql-5.7.29-winx64-3307

# 设置mysql数据库的数据的存放目录

datadir=D:\MySQL Server 5.7.29\mysql-5.7.29-winx64-3307\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

15、修改 D:\MySQL Server 5.7.29\mysql-5.7.29-winx64-3307\auto.cnf 中uuid值,由于是拷贝过来的如果不修改与主库的值一致,搭建主从时会报错 (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.)。

[auto]

server-uuid=39e646a2-59f0-11ea-bf0b-14dae9636b20

16、参考安装主库步骤 9、10、11、12,安装备库服务并启动从库服务。

mysqld --install slave --defaults-file="D:\MySQL Server 5.7.29\mysql-5.7.29-winx64-3307\my.ini"

net start slave

17、连接主库成功后使用nactive 工具给主库创建一个名称为sync用于主从同步的用户,服务器权限需要全勾选。

也可以使用命令行创建用户示例语句如下:

create user sync;

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

flush privileges;

二、主从关联

1、在主库命令列界面中执行 show master status; 并记住File列以及Position列对应的值,后续在从库中关联主库时会使用。

2、打开从库的命令列界面,执行

change master to master_host='127.0.0.1',master_port=3306,master_user='sync',master_password='sync',

master_log_file=' mysql-bin.000004',master_log_pos= 1924;

3、在从库中执行命令 start slave; 开启主从同步。

4、在从库中执行show slave status \G; 带换行的或者 show slave status不带换行的查看salve的状态。Slave_IO_Running 、Slave_SQL_Running 状态为YES即可。

5、接下来就可以在主库中进行增删改了,在从库中查看效果,从库最好单独创建一个拥有查询的用户进行查询。

三、附加信息

1、查看server_id 命令:show variables like 'server_id';

2、从库与主库可以多次进行关联,执行stop slave;后进行关联

change master to master_host='127.0.0.1',master_port=3306,master_user='sync',master_password='sync',

master_log_file=' mysql-bin.000004',master_log_pos= 1924;

注意修改 master_log_file master_log_pos 以及其他配置信息

最后在执行start salve;即可。

0