1、下载MySQL
MySQL :: Download MySQL Community Server
我这里下载的是zip压缩包文件
mysql-8.2.0-winx64.zip
2、在合适的目录下解压该zip文件
解压两份,主用设置3316端口,备用设置3319端口
1、在mysql-8.2.0-master目录下创建my.ini文件
my.ini文件内容如下:
[mysqld]
# 设置3306端口
port=3316
# 设置mysql的安装目录
basedir=C:\\MySQL\\mysql-8.2.0-master
# 设置mysql数据库的数据的存放目录
datadir=C:\\MySQL\\mysql-8.2.0-master\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 主库设置
#这个服务id每个数据库要设置不一样
server_id=1
log_bin=master-bin
log_bin-index=master-bin.index
#记录错误日志
log_error=C:\\MySQL\\mysql-8.2.0-master\\logerr
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3316
default-character-set=utf8
1、在mysql-8.2.0-slave目录下创建my.ini文件
my.ini文件内容如下:
[mysqld]
# 设置3309端口
port=3319
# 设置mysql的安装目录
basedir=C:\\MySQL\\mysql-8.2.0-slave
# 设置mysql数据库的数据的存放目录
datadir=C:\\MySQL\\mysql-8.2.0-slave\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#从库配置
#服务id和主库不一样
server_id=2
log_error=C:\\MySQL\\mysql-8.2.0-slave\\logerr
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3319
default-character-set=utf8
管理员打开cmd,切换到C:\MySQL\mysql-8.2.0-master\bin目录
1、初始化
mysqld --initialize --console
在控制台会输出初始密码,记录下来
2、注册服务
mysqld --install MysqlMaster --defaults-file="C:\MySQL\mysql-8.2.0-master\my.ini"
3、启动服务
net start MysqlMaster
4、连接MySQL
初始密码在初始化的时候控制台会输出
mysql -uroot -P3316 -p
密码xxxxxxx
5、修改密码
alter user 'root'@'localhost' identified by 'root';
flush privileges; ##刷新权限
6、创建用于同步数据的账号
也可以不创建,使用root,我是使用的root,但是创建用户的方法如下:
create user 'czl'@'%' identified by '123456';
grant replication slave on *.* to 'czl'@'%' identified by '123456';
flush privileges;
7、查看主库状态
show master status;
管理员打开cmd,切换到C:\MySQL\mysql-8.2.0-slave\bin目录
1、初始化
mysqld --initialize --console
在控制台会输出初始密码,记录下来
2、注册服务
mysqld --install MysqlMaster --defaults-file="C:\MySQL\mysql-8.2.0-slave\my.ini"
3、启动服务
net start MysqlMaster
4、连接MySQL
初始密码在初始化的时候控制台会输出
mysql -uroot -P3319 -p
密码xxxxxxx
5、修改密码
alter user 'root'@'localhost' identified by 'root';
flush privileges; ##刷新权限
6、创建用于同步数据的账号
也可以不创建,使用root,我是使用的root,但是创建用户的方法如下:
create user 'czl'@'%' identified by '123456';
flush privileges;
7、查看从库状态
show slave status;
1、查看master和slave各自目录 xxx/data/auto.cnf
如果两个文件一致,则修改slave从库的auto.cnf 使得两个库的值不一致
2、设置从库从哪里同步即设置master
在从库执行
change master to master_host='localhost',master_port=3316,master_user='root',master_password='root',master_log_file='master-bin.000003',master_log_pos=645;
参数详解:
master_host: 主服务器的IP
master_user: 主服务器上需要的用户名
master_password: 用户的密码
master_port: 主服务器的端口,如果未曾修改,默认即可。
master_log_file:主服务器二进制日志文件的名称,填写查看主服务器的master状态时显示的File值
master_log_pos: 同步位置,填写查看主服务器的master状态时显示的Position值
3、开始主从同步
start slave; ##开启主从同步
stop slave; ##关闭主从同步
4、检查同步状态
show slave status\G
主从同步成功的标志:
在master库操作的数据都会同步到slave库
1、在master库创建crowncad库,并创建test表,插入一条数据
mysql -uroot -P3316 -p
输入密码:root
create database crowncad;
show databases;
use crowncad;
create table test(name varchar(32),age int);
insert into test(name,age) values('lisi',18);
2、登录从库进行查询
mysql -uroot -P3319 -p
输入密码:root
show databases;
select * from test;
数据已经从主库同步到了从库