一、安装多个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集群配置等内容,喜欢的关注,感谢。