一、安装好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
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
上面Slave_IO_Running、Slave_SQL_Running 都为yes时表示设置成功。(如果io项为false时检查账号权限以及第一部分中的server_id是否相同)。
五、验证
1、主从分别创建数据库course_db
CREATE DATABASE course_db;
2、在主库course_db表中任意创建表,插入数据皆可
3、去从库验证也有表和数据即成功