一、安装多个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_masterdatadir=D:\devtop\mysql\mysql57_master\dataport=3307character_set_server=utf8character-set-server=utf8init-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=utf8default-character-set=utf8[mysql]default_character_set=utf8default-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=101log_bin=master-binlog_bin-index=master-bin.indexbinlog-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-binlog_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: 3307Connect_Retry: 60Master_Log_File: master-bin.000003 Read_Master_Log_Pos: 154 Relay_Log_File: slave-relay-bin.000002Relay_Log_Pos: 321Relay_Master_Log_File: master-bin.000003Slave_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集群配置等内容,喜欢的关注,感谢。