Mysql 配置 主从复制 windows版

Mysql 配置 主从复制 windows版

master 节段

1 创建一个新的数据库

create database testdb character set=utf8;
use testdb;
create table t1(
	id int,
    name varchar(200)
);

2 停止数据库服务

net stop mysql	

3 编辑 my.ini 文件 在 [mysqld] 下新增 如下配置

######主从复制 master 配置
server-id=1
#开启binlog 文件名(存放在mysql数据存放位置内)
log-bin=mysql-bin
#需要被复制的数据库名称
binlog-do-db=master
#不需要复制的数据库 二者不能同时出现
#binlog-ignore-db=xxx

完整的配置文件:

[mysqld]
# 设置3306端口
port=3307
# 设置mysql的安装目录
basedir=D:\mysql\mysql-5.7.25-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-5.7.25-winx64\mysql-5.7.25-winx64\data\
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
#default_authentication_plugin=mysql_native_password

######主从复制 master 配置
server-id=1
#开启binlog 文件名(存放在mysql数据存放位置内)
log-bin=mysql-bin
#需要被复制的数据库名称
binlog-do-db=master
#不需要复制的数据库 二者不能同时出现
#binlog-ignore-db=xxx

#######主从复制 slave 配置
#serve-id=2 slave只需要配置一个server-id 即可 注意server-id 必须保持唯一
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8

4 启动服务

net start mysql

5 配置

1.创建 用户名为 slave 密码为root的用户 只有复制的权限

 grant replication slave on *.* to slave@'%'  identified by "123";

2 查看 master 当前状态

show master status;

在这里插入图片描述
注意 file 和 position 是需要记住的

Slave 节点

1 将数据库与master保持一致

create database testdb character set=utf8;
use testdb;
create table t1(
	id int,
    name varchar(200)
);

2 停止数据库服务

net stop mysql

3 编辑 my.ini 文件 在 [mysqld] 下新增 如下配置

#从服务只需要配置一个server-id即可
server-id=2

4 配置 slave服务

-- 在mysql内 先停止 slave服务
stop slave;
-- 配置slave服务信息 注意 master_log_file 和 master_log_pos 和之前查看master的状态要保持一致
change master to 
master_host='127.0.0.1',
master_port=3307,
master_user='slave',
master_password='root',
master_log_file='mysql-bin.000002',
master_log_pos=444;
-- 启动 slave服务
start slave;
-- 查看 slave状态 看是否开启
-- Slave_IO_Running: Yes #负责与主机的io通信
-- Slave_SQL_Running: Yes #负责自己的slave mysql进程
show slave status;

测试

在主服务上插入数据 从服务会自动读取binlog日志并备份数据

猜你喜欢

转载自blog.csdn.net/dndndnnffj/article/details/107286462