使用一台物理机实现mysql的主从复制功能。
准备:
1、操作系统:Windows Server 2016 Standard
2、下载mysql免安装包:
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.17-winx64.zip
安装maser
1、解压mysql压缩包,并复制一份文件,命名为mysql-5.6.17-winx64_slave
2、复制文件my-default.ini,命名my.ini,并编辑内容如下所示:
# These are commonly set, remove the # and set as required.
basedir = E:\mysql\mysql-5.6.17-winx64
datadir = E:\mysql\mysql-5.6.17-winx64\data
explicit_defaults_for_timestamp = TRUE
binlog-do-db=test
port = 3306
server_id = 1
log-bin=mysql-bin
3、安装master服务
使用管理员身份打开cmd窗口,进入master主库的bin目录,然后使用命令安装主数据库服务:
mysqld install mysql1 --defaults-file="E:\mysql\mysql-5.6.17-winx64\my.ini"
4、控制面板-》服务中启动主数据库服务“mysql1”
5、使用命令连接主库
mysql -uroot -p -P3306
6、创建同步数据的账户
create user 'syncuser'@'127.0.0.1' identified by '123456';
7、给用户授权
grant replication slave on *.* to 'syncuser'@'127.0.0.1' identified by '123456';
8、查询主库状态
show master status;
可以看到目前日志的位置到120个字节。
安装slave
1、修改从库配置
basedir = E:\mysql\mysql-5.6.17-winx64_slave
datadir = E:\mysql\mysql-5.6.17-winx64_slave\data
skip-slave-start
port = 3307
server_id = 2
2、安装从库的数据库服务
mysqld install mysql2 --defaults-file="E:\mysql\mysql-5.6.17-winx64_slave\my.ini"
3、同主库服务,在控制面板-》服务中启动从库服务
4、连接从库
mysql -uroot -p -P3307
5、设置master信息
change master to master_host='127.0.0.1',master_port=3306,master_user='syncuser',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
6、启动主从复制功能
start slave;
7、查看从库状态
show slave status;
测试
1、在主库test数据库中创建user表
create table user(id bigint(20) not null AUTO_INCREMENT,
name varchar(255) default null,
address varchar(255) default null,
primary key (id) using btree)
engine=innodb auto_increment=1 character set=utf8;
2、在从库查看表是否创建
说明主库创建的表自动同步到从库了。
3、在主库执行一下sql
insert into user(name,address) values ('zhangsan','shenzhen');
4、在从库执行sql
说明主库执行的插入操作自动同步到从库了。
5、查看从库的状态
show slave status
发现从库读取日志的位置也发生变化了。