手把手教你搭建 MySQL 主从复制经典架构

一、下载安装

1、下载MySQL

MySQL :: Download MySQL Community Server

我这里下载的是zip压缩包文件

mysql-8.2.0-winx64.zip

2、在合适的目录下解压该zip文件

解压两份,主用设置3316端口,备用设置3319端口

手把手教你搭建 MySQL 主从复制经典架构_第1张图片

二、配置主数据库

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

在控制台会输出初始密码,记录下来

手把手教你搭建 MySQL 主从复制经典架构_第2张图片

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;

手把手教你搭建 MySQL 主从复制经典架构_第3张图片

五、启动从数据库

管理员打开cmd,切换到C:\MySQL\mysql-8.2.0-slave\bin目录

1、初始化

mysqld --initialize --console

在控制台会输出初始密码,记录下来

手把手教你搭建 MySQL 主从复制经典架构_第4张图片

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 使得两个库的值不一致

手把手教你搭建 MySQL 主从复制经典架构_第5张图片

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

主从同步成功的标志:

手把手教你搭建 MySQL 主从复制经典架构_第6张图片

七、测试

在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;

手把手教你搭建 MySQL 主从复制经典架构_第7张图片

数据已经从主库同步到了从库

你可能感兴趣的:(MySQL,mysql,数据库,运维)