windows10本地两个mysql8服务配置主从热备

yankeys

1.前期准备

1、两份mysql源码(不要用下载器安装,避免下载器读取已安装msyql服务而不新增安装选项)

image.png

image.png

2、新增主从的配置文件my.ini
image.png

主数据库配置内容(注意basedir后面的双斜线,是为了防止安装的时候冒号+斜线将server的第一个字母s给忽略调):

[mysqld]
port=3306
basedir=D:\\server\mysql
datadir=D:\\server\mysql\data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
# 主库设置
server_id=1
log_bin=master-bin
log_bin-index=master-bin.index
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

从库配置:

[mysqld]
port=3307
basedir=D:\\server\mysql_follow
datadir=D:\\server\mysql_follow\data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
#从库配置
server_id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
# 需要同步的数据库名
replicate-do-db=test
# 如果只同步某表
# replicate-wild-do-table=test.user
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4

2.正式安装

1 安装

1、主库
cmd进入安装目录的bin目录,运行命令初始化安装 mysqld --initialize -- console
image.png
可以看到自动生成了密码

安装为服务mysqld --install mysql
启动服务net start mysql
登入mysql -uroot -p 回车输入刚刚生成的密码
修改密码alter user 'root'@'localhost' identified with mysql_native_password by 'root'

image.png

2、从库安装,与主库基本一致,不过注册服务需更换名字
cmd进入安装目录的bin目录,运行命令初始化安装 mysqld --initialize -- console
安装为服务mysqld --install mysql_follow
启动服务net start mysql_follow
登入mysql -uroot -p 回车输入刚刚生成的密码
修改密码alter user 'root'@'localhost' identified with mysql_native_password by 'root_follow'

2 配置调试

1、主库
新增用于同步的mysql用户
新增用户CREATE USER 'follow'@'%' IDENTIFIED WITH mysql_native_password BY 'master_follow'
-- 更改密码alter user 'follow'@'%' identified with mysql_native_password by 'master_follow'
image.png

指定follow为主库同步账号
image.png

查看主库状态show master status
image.png

2、从库

配置主库信息(file和pos按照主库的信息配置)

mysql> change master to master_host='127.0.0.1',
    -> master_port=3306,
    -> master_user='follow',
    -> master_password='master_follow',
    -> master_log_file='master-bin.000004',
    -> master_log_pos=545;

开启从库热备start slave
image.png

检查从库状态show slave status \G(G的作用是方便阅读)
image.png
image.png

3、至此再次打开数据库,就能看到数据是否已经同步了。也可以在主库修改一个字段,再到从库去看看用了多长时间(测试多次,最长的一次大概有2秒的延迟)

错误处理

1、配置主库时报错:ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.
image.png

解决方法:STOP SLAVE IO_THREAD FOR CHANNEL ''
image.png

2、从库状态:Slave_SQL_Running: No
image.png

解决办法:

stop slave;
set global SQL_SLAVE_SKIP_COUNTER=1;
start slave;

追查了一番文档,SQL_SLAVE_SKIP_COUNTER的作用是跳过event,从5.6就开始支持了。

image.png

尾语

最后的最后,亮一波硬件(使用mac者与家庭宅客可屏蔽此项)
first blood
image.png

double kill
image.png

trible kill
image.png

还有更top的老爷,欢迎评论区贴图~

阅读 1.5k

搬砖杂笔
搬砖过程中的一些log

相见,才知道被忙碌挤压的思念…

73 声望
9 粉丝
0 条评论

相见,才知道被忙碌挤压的思念…

73 声望
9 粉丝
文章目录
宣传栏