windows 安装mysql主从复制

1. MySQL主库设置

修改主库的my.ini文件

[mysqld]

#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/databases/mysql-8.0.27-winx64-master"

#Path to the database root
datadir="D:/databases/mysql-8.0.27-winx64-master/data"

# The TCP/IP Port the MySQL Server will listen on
port=3306

log-bin=mysql-bin

server-id=1

#同步的数据库
binlog-do-db=snow
#不参与同步的数据库 ,例如mysql
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

# ignore the auth
#skip-grant-tables

shared-memory

注:

  • 主库server-id与从库server-id不能一样,如果在同一台机器端口也不能一样
  • log-bin=mysql-bin  (开启binlog日志,日志的名字开头是mysql-bin)
  • binlog-do-db (后面跟的是需要同步的数据库,多个数据库就多写几个)
  • binlog-ignore-db (后面跟的是不需要同步的数据库)

2. MySQL从库设置

修改从库的my.ini文件

[mysqld]

#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/databases/mysql-8.0.27-winx64-slave"

#Path to the database root
datadir="D:/databases/mysql-8.0.27-winx64-slave/data"

# The TCP/IP Port the MySQL Server will listen on
port=3307

log-bin=mysql-bin

server-id=2

#主从复制的数据库
replicate_do_db=snow
#不参与主从复制的数据库,例如mysql
replicate_ignore_db=mysql
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=sys

# ignore the auth
# skip-grant-tables

注:

  • 从库配置文件里的replicate-do-db是需要同步的数据库

3. 注册及设置数据库

管理员CMD模式到MySQL主库 bin目录下,运行如下命令进行安装及用户设置:

mysqld --install mysql-master --defaults-file="D:\databases\mysql-8.0.27-winx64-master\my.ini"
net start mysql-master
mysql -u root -p
# 输入密码,进入mysql
mysql> set password=password('123456');

管理员CMD模式到MySQL从库 bin目录下,运行:

mysqld --install mysql-slave --defaults-file="D:\databases\mysql-8.0.27-winx64-slave\my.ini"
net start mysql-slave
# following opertion is optional
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'123456';
# 启动MySQL服务的时候跳过权限表认证
mysqld --console --skip-grant-tables --shared-memory
mysql -u root -P3307 -p

win+r  输入services.msc找mysql的服务就会看到两个服务:

4. 设置主库

create database 'snow' character set utf8 collate utf8_bin;

CREATE USER master_user IDENTIFIED BY '123456';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'master_user'@'127.0.0.1';
GRANT ALL PRIVILEGES ON *.* TO 'master_user'@'127.0.0.1';
FLUSH PRIVILEGES;

SELECT User FROM mysql.user;
# 需要记录查询出来的File和position在设置从库的时候会用到
show master status;

5. 设置从库

stop slave;

change master to
 master_host = '127.0.0.1',
 master_port = 3306,
 master_user = 'master_user',
 master_password = '123456',
 master_log_file = 'mysql-bin.000004',
 master_log_pos = 156;

 

posted @ 2022-02-09 21:03  在旅途上追忆寻梦  阅读(108)  评论(0)    收藏  举报