首页 > 数据库 >搞定!详解MeterSphere 配置外部Mysql5.7的全过程

搞定!详解MeterSphere 配置外部Mysql5.7的全过程

时间:2023-09-27 10:31:45浏览次数:57  
标签:core 搞定 java Mysql5.7 MeterSphere metersphere org 数据库 flywaydb


搞定!详解MeterSphere 配置外部Mysql5.7的全过程_mysql

 

最近试用了MeterSphere做接口测试平台,感觉使用起来非常方便,最重要的是开源免费!官方文档还是非常详细的,这里我就不多介绍了,感兴趣的同学可以参考:

https://metersphere.io/docs/v2.x/

经过讨论,决定在测试团队推广。由于公司数据库管理策略,数据库必须通过dba 统一管理,所以需要MeterSphere连接外部mysql数据库。数据库迁移过程中主要遇到下面错误:

Caused by: org.flywaydb.core.api.FlywayException: Schema `metersphere` contains a failed migration to version 5 !

接下来我就详细讲述一下,MeterSphere连接外部数据库的操作过程,以及再此过程中解决遇到问题的详细步骤:

修改配置文件

根据官方提示 在/opt/metersphere/.env (该文件是隐藏文件)中修改如下配置,注意标红

# 数据库配置

## 是否使用外部数据库

MS_EXTERNAL_MYSQL=true

## 数据库地址

MS_MYSQL_HOST=mysql

## 数据库端口

MS_MYSQL_PORT=3306

## 数据库库名

MS_MYSQL_DB=metersphere

## 数据库用户名

MS_MYSQL_USER=root

## 数据库密码

MS_MYSQL_PASSWORD=Password123@mysql

然后运行命令

msctl reload

msctl restart

错误现象

自以为会是大功告成,事实则是登录无反应!

查看/opt/metersphere/logs/metersphere/info.log 日志发现问题如下:

Caused by: org.flywaydb.core.api.FlywayException: Schema `metersphere` contains a failed migration to version 5 !
at org.flywaydb.core.internal.command.DbMigrate.migrateGroup(DbMigrate.java:217)
at org.flywaydb.core.internal.command.DbMigrate.lambda$migrateAll$0(DbMigrate.java:141)
at org.flywaydb.core.internal.database.mysql.MySQLNamedLockTemplate.execute(MySQLNamedLockTemplate.java:60)
at org.flywaydb.core.internal.database.mysql.MySQLConnection.lock(MySQLConnection.java:154)
at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.lock(JdbcTableSchemaHistory.java:141)
at org.flywaydb.core.internal.command.DbMigrate.migrateAll(DbMigrate.java:141)
at org.flywaydb.core.internal.command.DbMigrate.migrate(DbMigrate.java:101)
at org.flywaydb.core.Flyway$1.execute(Flyway.java:219)
at org.flywaydb.core.Flyway$1.execute(Flyway.java:170)
at org.flywaydb.core.Flyway.execute(Flyway.java:586)
at org.flywaydb.core.Flyway.migrate(Flyway.java:170)
at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
... 34 common frames omitted

第一反应是 — 怎么会?我明明按照官网链接一步一步执行的啊!

https://metersphere.io/docs/v2.x/installation/offline_installation/

并协调dba搞了个MySQL5.7 ,怎么还会报db迁移到5的错误呢?

Caused by: org.flywaydb.core.api.FlywayException: Schema `metersphere` contains a failed migration to version 5 !

搞定!详解MeterSphere 配置外部Mysql5.7的全过程_mysql_02

 

寻求问题解决方案

于是乎找了metersphere的技术支持,解决方案如下:

首先执行下面的脚本

https://raw.githubusercontent.com/metersphere/metersphere/master/backend/src/main/resources/db/migration/V5__schedule.sql

然后修改metersphere_version 表对应版本的的success值为1,

最后执行命令 msclt reload 重启服务即可

1.这里需要注意的是:执行V5__schedule.sql语句一定让dba找一个最高权限的账号来执行,否者需要各种授权,非常的麻烦!

2.如果执行过程中有各种表已经创建,列已经存在的相关消息,直接忽略即可

3. V5__schedule.sql 执行之前已经执行了很多sql操作,这些语句是在执行下面语句时就已经完成了的!换句话说,V5__schedule.sql是基于下面的语句运行之后再运行的!

msctl reload

msctl restart

最后的总结

如果执行sql语句过程中出现了意想不到的问题。建议如下操作:

1. 删掉库metersphere,然后重新创建库metersphere

2. 执行msctl restart

3. 执行语句V5__schedule.sql

4. 修改metersphere_version 表对应版本的的success值为1

5. 执行msclt reload

标签:core,搞定,java,Mysql5.7,MeterSphere,metersphere,org,数据库,flywaydb
From: https://blog.51cto.com/liwen629/7621248

相关文章

  • mysql5.7的一些日常操作
    查看库MySQL[mysql]>showdatabases;+--------------------+|Database|+--------------------+|information_schema||auditlog||mysql||nacos_config||performance_schema||sys|+---------......
  • Dell电脑安装Linux,一步搞定
    在这个数字化时代,Linux操作系统的应用越来越广泛。作为一个开源的操作系统,Linux不仅具有高度的稳定性和安全性,还拥有丰富的软件资源和强大的自定义能力。对于使用Dell电脑的用户来说,安装Linux是一个不错的选择。那么,如何在Dell电脑上安装Linux呢?下面小编将为你一一解答。一、了解......
  • Vue3引入滑块验证组件-2分钟搞定
    手把手视频地址:https://www.bilibili.com/video/BV1Nu4y1r7Wr/安装npminstall--savevue3-slide-verify登录页面引入template下<template><divclass="login"> <el-cardclass="cover"v-if="loginUser.data.user"> <slide......
  • centos 7 彻底删除mysql5.7 与 mysql5.7 rpm安装
    准备工作1.下载msyql5.7的安装包,mysql-5.7.36-1.el7.x86_64.rpm-bundle.tarsystemctlstopmysqld//关闭msyql服务2.查看是否有安装的mysql,删除安装的mysqlrpm-qa|grep-imysql//查看使用rpm安装了哪些包3.卸载安装的包,逐个删除查到了rpm包rpm-e--nodeps......
  • CentOS7装浏览器:安装配置一步搞定
    CentOS7是一款开源的操作系统,它广泛应用于服务器和工作站。然而linuxqq,由于它的默认安装没有包含任何图形界面centos装浏览器,因此很难在上面使用Web浏览器。本文将向您展示如何在CentOS7上安装和配置浏览器。1.安装桌面环境要在CentOS上使用浏览器,您需要先安装桌面环境。这......
  • Linux系统同时安装MySQL5.7和MySQL8.0
    本文是在一台Centos7虚拟机上面同时安装mysql5.7和mysql8.0的步骤,记录一下,方便后续回顾,这篇文章之后会接着学习搭建两台虚拟机一主一从的架构。其中配置的文件名称、目录、端口号、IP地址要根据自己电脑的实际情况进行更改。mysql5.7和mysql8.0同时安装完成后:将安装包上传到家目录......
  • centos7使用mysql压缩包安装mysql5.7
    centos7使用mysql压缩包安装mysql5.71、安装相关的命令环境安装vim命令yum-yinstallvim*安装netstat命令yum-yinstallnet-tools2、上传mysql压缩包到/usr/local/并解压重名mysql-5.7.37-el7-x86_64.tar.gz解压mysql安装包tar-zxvfmysql-5.7.37-el7-x86_64.t......
  • 错误记录——mysql5.7连接失败,服务无法启动
    起因:上周安装完mysql后,成功新建了数据库,一切都是正常的,于是就先搁置一旁。今天周一过来,却突然发现无法连接mysql了。过程:第一反应是服务没有启动,毕竟重启了电脑,说不定是服务没有自动启动,于是打开了服务管理器,却发现没有mysql对应的服务。既然没有,那我就自己手动创建一......
  • Kubernetes部署MySQL5.7单机---NFS存储
    实验目的:将MySQL5.7使用nfs持久化存储部署到Kubernetes集群中复制nfs存储地址:nfs.myit.icu复制nfs存储配置:临时测试---100G安装nfsyuminstall-ynfs-utilsrpcbind创建nfs存储目录[root@nfs~]#mkdir/data/nfsData-p格式化磁盘[root@nfs~]#mkfs.ext4/dev......
  • 基于k8s的statefulset+pv安装mysql5.7主从集群
    前提假设:1.已安装k8s环境;2.因为我使用nfs作为pv存储介质,所以需要预先配置好nfs服务nfs安装可参考:https://blog.csdn.net/wudinaniya/article/details/81068518 步骤:1.规划mysql持久化文件在nfs中的存储路径;2.创建mysqlpv;3.创建mysql configmap;4.创建mysql service;5.......