[TOC]
### 1.搭建环境
服务器是win10 64位的,mysql用的5.7.32,先去https://downloads.mysql.com/archives/community/ 下载合适的版本然后解压安装,20版本的做主服务器,32版本做从服务器。
### 2.在两个版本中分别建my.ini配置文件
主库配置如下:
```
[mysqld]
port = 3306
#(20版本所在文件夹路径)
basedir=E:\anzhuang\dbserver\mysql-5.7.20-winx64
#(data路径,存放日志文件)
datadir=E:\anzhuang\dbserver\mysql-5.7.20-winx64\data
#数据库备份文件名称,可自由取,生成后会带文件序列号,服务每重启一次就会产生一个新文件
log-bin=master-bin
server-id = 1
#表示需要备份的数据库为mst
binlog-do-db=mst
#表示不需要备份的数据库为mysql
#binlog-ignore-db=mysql
#如果两个都不设的话,从服务器会复制主服务器的全部数据库
#表示开启二进制日志,并把二进制日志前缀改为mysql-bin
#log-bin=mysql-bin
#最大连接数
max_connections=200
#编码
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#skip-grant-tables
[mysql]
#编码
default-character-set=utf8
```
从库配置如下:
```
[mysqld]
port=3308
basedir=E:\anzhuang\dbserver\\slaver\mysql-5.7.32-winx64
datadir=E:\anzhuang\dbserver\\slaver\mysql-5.7.32-winx64\data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
#从库配置
server_id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
# 需要同步的数据库名
replicate-do-db=mst
# 如果只同步某表
# replicate-wild-do-table=test.user
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3308
default-character-set=utf8mb4
```
### 3.初始化主库及从库
以管理员身份运行并打开cmd窗口,先进入主库的bin目录
执行:mysqld --initialize --console,初始化并打印出初始化的密码,记住密码后面会用到。
执行:mysqld --install masterMysql,注意masterMysql是我自定义的主库服务的名称。然后执行net start masterMysql,启动主库服务,启动成功后在执行mysql -u root -p,回车后在输入初始化得到的密码即可进入到mydql主数据库。 这时需要改下数据库的密码,执行:alter user 'root'@'localhost' identified with mysql_native_password by '1234567;
在执行 :show databases; 查看主库中包含4个数据库
主库配置完后同样的步骤在配置下从库,注意从库名不同即可。
下面继续从库配置:
首先通过cmd进入到解压后的从库bin目录下(管理员身份),然后执行mysqld --initialize --console,初始化并打印出初始化的密码,记住密码后面会用到。
执行:mysqld --install slaverMysql,注意slaverMysql是我自定义的从库服务的名称。然后执行net start slaverMysql,启动从库服务,启动成功后在执行mysql -u root -p,回车后在输入初始化得到的密码即可进入到mydql的从库。
进入从库之后先修改密码,执行:alter user 'root'@'localhost' identified with mysql_native_password by '1234567; 将密码修改为1234567,可以改为自己的。
在执行 :show databases; 查看从库,如下图所示即代表从库初始化成功。
### 4.用Navicat验证下主库从库
说明:主库端口号3306,从库端口号3308,主库中的数据库mst是自己建好的,主库中放完整的mst及表数据,从库中也需要建好mst数据库名, 否则会提示找不到mst,为了保持主库与从库一致,从库中也需要导入mst的数据,否则开启主从同步后,按照目前写的配置,从库中只会同步开启同步之后时间点的数据,之前的则无法同步。
### 5.查看主库状态
执行:show master status; 查看主库状态,红框中的File 及Position的值等会配置从库有用,mst表示我们要同步的数据库,是在my.ini中配置过的。
### 6.配置从库并启动复制
在从库的命令窗口执行:
mysql> change master to master_host='127.0.0.1',
-> master_port=3306,
-> master_user='root',
-> master_password='1234567',
-> master_log_file='master-bin.000003',
-> master_log_pos=154;
执行成功标识如下:
启动复制,执行:start slave;成功标识如下:
### 7.查看从库slave状态
执行:show slave status \G;出现两个yes代表配置成功
### 8.在主库中新建一个表测试
在主库中建一个a_test的空表
然后在从库中查看下表。出现a_test表表示成功。
网友评论