windows安装多个mysql及主备数据库搭建
一、安装多个mysql
1.下载mysql
去mysql官网MySQL :: Download MySQL Community Server (Archived Versions)下载对应版本的zip文件。
2.安装mysql
下载的文件解压到指定的文件目录下
3.配置mysql
在与bin同级的目录下找到my.ini文件,如果没有新建my.ini文件,并添加如下内容
[mysqld]
basedir=D:\devtop\mysql\mysql57_master
datadir=D:\devtop\mysql\mysql57_master\data
port=3307
character_set_server=utf8
character-set-server=utf8
init-connect='set names utf8'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[client]
default_character_set=utf8
default-character-set=utf8
[mysql]
default_character_set=utf8
default-character-set=utf8
注意:basedir 是mysql的解压目录;datadir:是mysql数据的存储路径,port:端口
4.初始化数据
通过cmd进入到mysql的bin目录,运行
mysqld --initialize --console
即可完成数据库数据的初始化。 初始化结束后,mysql会为root用户随机生成一个密码,如图
A temporary password using UTF8MB4 for root@localhost: 1bexEsxd123
5.启动mysql
命令行输入 net start mysql,其中mysql为服务名称,如果不输入则为MySQL,此处在配置多个mysql时需要服务名称设置为不相同。
6.其他设置
本机通过以上密码登录后进行其他mysql的相关配置。
7.另外一个mysql服务
安装方式同上,但是需要注意的是2个服务的端口不可设置为一样的。另外如果是安装相同版本的mysql,需要注意mysql的data下的文件auto.cnf修改mysql的uuid需要设置为不同的。
二、把mysql设置为系统服务
1.以管理员身份运行命令提示符,进入到mysql的bin目录
mysqld --install mysql2
这里的mysql2就是再服务里面用作区分多个mysql的服务名,如果不写,默认是MySQL,安装多个数据库,如果不写,会导致无法启动服务。
2.启动mysql2
net start mysql2
3.错误处理
由于找不到MSVCP120.dll,无法继续执行代码
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=40784 下载安装
4.卸载服务
命令行: sc delete 服务名称 如 sc delete mysql2
三、主从数据库服务器搭建
1.主库配置:
1.配置文件my.ini添加如下的配置
server-id=101
log_bin=master-bin
log_bin-index=master-bin.index
binlog-do-db=mrrs
server-id:主从数据库之间设置为不同的。
binlog-do-db:设置数据库的库名,如果想全库实现主从复制,此处不要配置。
2.创建复制数据的用户
命令行进入数据库执行 Grant replication slave on *.* to backup@'%' identified by '123456';
3.刷新权限
flush privileges;
4.允许用户远程登录
update user set host= '%' where user= 'root' ;
5. 查看主库状态
show master status;
并记住file和Position,后面搭建从库时需要用到。如图

2.从库配置
1.配置文件my.ini添加如下的配置
# 从库配置
server-id=102
#打开从服务二进制日志
log_bin=slave-bin
log_bin-index=master-bin.index
2.配置从库
完成上述配置后,重启从库服务,并进入数据库执行如下代码:
CHANGE MASTER TO
MASTER_HOST='127.0.0.1',
MASTER_PORT=3307,
MASTER_USER='backup',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='master-bin.000003',
MASTER_LOG_POS=154 ;
上述内容依次是:MySQL主库ip,MySQL主库端口,MySQL主库用户,MySQL主库用户密码,前面记住的主库file和position。
3.启动链路
start slave;
4.查看链路
show slave status \G
当看到如下信息,标识主从数据库搭建成功
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: backup
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: master-bin.000003
Read_Master_Log_Pos: 154
Relay_Log_File: slave-relay-bin.000002
Relay_Log_Pos: 321
Relay_Master_Log_File: master-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3.异常情况处理
1.中间如果出现问题,需要重新配置时,需要关闭slave链路,STOP SLAVE IO_THREAD;
2.Slave_IO_Running: No
如果配置过程中出现 Slave_IO_Running: No 的情况,可能是mysql的uuid导致,找到mysql的data下的文件auto.cnf修改mysql的uuid不同即可。
3..报错:
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
reset slave
4如果配置过程中出现 Slave_SQL_Running: No 的情况
stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave ;
四、互为主备数据库服务器搭建
mysql主备机搭建,把主库和从库分别设置互为主库、从库。
小编安装了4个版本mysql服务。

后面会梳理mysql的容器安装,通过docker容器设置mysql主备机服务。mysql集群配置等内容,喜欢的关注,感谢。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)