一、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;即可。