一、安装好Mysql8

    略( 自行安装)

二、配置主库

1、安装完成后,找到安装目录复制出两个新的文件夹master和slave

安装目录:

D:\software\mysql-8.0.21-winx64

复制后如下:

D:\software\mysql-8.0.21-winx64-master

D:\software\mysql-8.0.21-winx64-master

 2、进入master找到my.ini文件编辑

配置时注意server-id和port不能相同,basedir和datadir也对应修改

[mysqld]
# master
# 1.设置本数据库的id,主库和从库需要不一致 
server-id=3
binlog_format=ROW
log-bin=mysql-bin
# 2. 设置需要同步的数据库``
binlog-do-db=course_db
binlog-do-db=course_db_1
binlog-do-db=course_db_2
binlog-do-db=user_db
# 3. 设置不需要同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
# 4. 启动端口
port=3308
# 5. 配置mysql的安装路径
basedir=D:/software/mysql-8.0.21-winx64-master/
datadir=D:/software/mysql-8.0.21-winx64-master/data/

max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB

[mysql]
default-character-set=utf8mb4

[client]
# 6. 这里配置和上面的启动端口一致
port=3308
default-character-set=utf8mb4

  3、初始化master

首先清空 D:\software\mysql-8.0.21-winx64-master\data下的文件

用管理员进入命令提示符,进入D:\software\mysql-8.0.21-winx64-master\bin目录,输入cmd命令初始化:

mysqld --initialize --user=mysql --console

此时控制台会打印出用户名初始密码:如下面时root和8D31.02Lf%_.

2022-10-19T10:00:57.930821Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-10-19T10:00:59.040088Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 8D31.02Lf%_.

4、安装master

1)进入D:\software\mysql-8.0.21-winx64-master\bin目录,输入cmd命令安装服务名为mysql8的服务:

mysqld --install mysql8 --defaults-file="D:\software\mysql-8.0.21-winx64-master\my.ini"

2)此时打开服务列表(win+R,输入services.msc),就可以在列表中找到mysql8服务,之后启动服务

3)进入服务修改密码 (因初始密码不容易记住,可以不改)

登录mysql

mysql -u root -p

修改密码为root

alter user root@localhost identified by 'root';

三、配置从库

1、从库my.ini配置

[mysqld]
# slave
# 1.设置本数据库的id,主库和从库需要不一致
server-id=2
binlog_format=ROW
log-bin=mysql-bin
# 2. 设置需要同步的数据库``
replicate_wild_do_table=course_db.%
replicate_wild_do_table=course_db_1.%
replicate_wild_do_table=course_db_2.%
replicate_wild_do_table=user_db.%
# 3. 设置不需要同步的数据库
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=information_schema.%
# 4. 启动端口
port=3307
# 5. 配置mysql的安装路径
basedir=D:/software/mysql-8.0.21-winx64-slave/
datadir=D:/software/mysql-8.0.21-winx64-slave/data/

max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB

[mysql]
default-character-set=utf8mb4

[client]
# 6. 这里配置和上面的启动端口一致
port=3307
default-character-set=utf8mb4

2、初始化和安装参考master的3、4步骤

注意安装时服务名要换一个 如mysql8-slave

mysqld --install mysql8-slave --defaults-file="D:\software\mysql-8.0.21-winx64-slave\my.ini"

四、配置主从跟随策略

1、在主库执行 SHOW MASTER STATUS 查询主库的binlog文件名以及起始点position

mysql不停机主从配置 mysql8.0主从配置_sed

2、然后切换到从库首先停掉 从库(从库执行)STOP SLAVE;
3、执行sql(从库执行)

CHANGE MASTER TO MASTER_HOST='localhost',MASTER_USER='root',MASTER_PASSWORD='root', MASTER_PORT=3308 ,MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=6756;

4、开启从库(从库执行)START SLAVE;
5、查询从库状态(从库执行)SHOW SLAVE STATUS

mysql不停机主从配置 mysql8.0主从配置_mysql_02


上面Slave_IO_Running、Slave_SQL_Running 都为yes时表示设置成功。(如果io项为false时检查账号权限以及第一部分中的server_id是否相同)。

 五、验证

1、主从分别创建数据库course_db

CREATE DATABASE course_db;

 2、在主库course_db表中任意创建表,插入数据皆可

3、去从库验证也有表和数据即成功