一 环境说明
1 软件版本说明
- 操作系统:Window server 2008 R2
- 数据库版本:5.7.20
2 安装说明
由于是测试环境,因此是在同一主机上搭建的。主从数据库总体分配如下
数据库名称 | 端口号 | 角色 |
---|---|---|
mysql-m1 | 3320 | master |
mysql-s1 | 3321 | slave1 |
mysql-s2 | 3322 | slave2 |
mysql-s3 | 3323 | slave3 |
二 环境搭建
2.1 下载说明
本文采用的是免安装版本(),下载地址:
https://dev.mysql.com/downloads/mysql/
2.2 安装
首先创建4个目录,分别为:mysql-m1、mysql-s1、mysql-s2、mysql-s3。
下载完成后分别将压缩包解压到这4个目录中,并分别在目录下创建my.ini文件。
2.3 环境变量配置
2.3.1 my.ini配置
mysql-m1:
[mysqld]
log_bin = log
basedir = D:\\mysql57\\mysql-m1
datadir = D:\\mysql57\\mysql-m1\data
port = 3320
character_set_server=utf8
server_id = 20
mysql-s1:
[mysqld]
#log_bin = log 从库可以不开启binlog
basedir = D:\\mysql57\\mysql-s1
datadir = D:\\mysql57\\mysql-s1\data
port = 3321
character_set_server=utf8
server_id = 21
mysql-s2:
[mysqld]
#log_bin = log 从库可以不开启binlog
basedir = D:\\mysql57\\mysql-s2
datadir = D:\\mysql57\\mysql-s2\data
port = 3322
character_set_server=utf8
server_id = 22
mysql-s3:
[mysqld]
#log_bin = log 从库可以不开启binlog
basedir = D:\\mysql57\\mysql-s3
datadir = D:\\mysql57\\mysql-s3\data
port = 3323
character_set_server=utf8
server_id = 23
2.3.2 初始化mysql实例
1 mysql-m1实例步骤
- 以管理员身份打开命令行窗口(组合键win+R,在打开中输入cmd,点击确定)。
- 在命令行窗口中,切换至mysql-m1/bin目录下,然后执行mysqld install mysql-m1 –defaults-file=”D:\mysql57\mysql-m1\my.ini”,提示Service successfully installed。
- 初始化数据,执行mysqld –defaults-file=”D:\mysql57\mysql-m1\my.ini” –initialize,稍等片刻,执行成功没有任何提示。执行成功后在mysql-m1目录下多出一个data文件夹
注:–defaults-file属性一定要,并且要对应相关目录下的my.ini不然可能会导致mysql服务无法启动。
2 其它数据库实例步骤
其它三个库参照mysql-m1的实例方法。
3 启动数据库
有两种方法可以启动数据库服务:
1、通过服务窗体,找到数据库实例名称,点击启动。
2、在命令行窗口中输入:net start mysql-m1
3 重置mysql的root用户密码
在实例化mysql数据库时,系统会自动生成一个root用户密码。我们可以用记事本打开data目录下的*.err文件(*一般是计算机名),找到A temporary password is generated for root@localhost: (iQ4?Ilk2p0.
。其中“(iQ4?Ilk2p0.”就是系统默认生成的密码。
然后在命令行窗口下执行命令,mysql -P3320 -uroot -p,然后输入密码:(iQ4?Ilk2p0.。登录成功后,执行以下命令修改root用户密码为123456。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
依次类推修改另外三个库的。
注:mysql -P 一定要加上,指定对应的端口号,不然是默认的3306
2.3.3 设置主从关系
1 在master库中创建slave用户
登录主库mysql-m1:
mysql -P3320 -uroot -p123456
登录成功后,输入命令行:
GRANT REPLICATION SLAVE ON *.* to 'testsyn'@'localhost' identified by '123456';
其中:testsyn是slave库访问主库的用户名,密码是“123456”
2查看binlog信息
mysql> show master status;
记录下file和position信息(log.000003和448)。
3 配置从库信息
(1) 登录mysql-s1数据库
mysql -P3321 -uroot -p123456
(2) 设置从库mysql-s1的master:
mysql> change master to master_host='127.0.0.1',master_port=3320,master_user='testsyn',master_password='123456',master_log_file='log.000003',master_log_pos=448;
这里的master_log_file和master_log_pos对应刚才show master status记下的参数。
(3) 从库开启数据库复制功能
mysql> start slave;
(4) 查看从库信息
mysql> show slave status\G;
Slave_IO_Running和Slave_SQL_Running都为YES是表示主从配置成功,若没有请检查slave授权步骤
是否有误,接着以此类推配置剩余两个从库即可。
2.4 测试主从配置是否成功
在mysql-m1中创建一个数据库
mysql -P3320 -uroot -p123456
mysql> create database study;
mysql> show databases;
查看从库mysql-s1是否同步
mysql -P3321 -uroot -p123456
show databases;
然后依次查看mysql-s2和mysql-s3。