通过 docker run 命令一键安装 metersphere 如何 手动备份 ,默认密码无法登录Mysql

通过现在V3 版本的 文档 进行 一键安装 . 安装完成后发现无法通过文档提供的手动备份流程 进行备份 . 使用root/Password123@mysql 账号密码 也无法在metersphere容器内登录mysql

如果是长期使用,建议使用离线安装包持久化部署,这样也方便维护。
修改为离线安装包部署的方式是:
1、将在线安装的持久化目录~/.metersphere/data,复制到/opt/metersphere/data目录(复制前可以查看这个目录下是否有mysql目录)。
2、备份/opt/metersphere/data目录,以防万一。
3、然后再使用离线方式进行安装,这样会默认安装在/opt/metersphere目录,并且会保留之前一键安装的数据。(需要安装跟在线安装时相同的版本,然后再进行升级操作)


离线安装文档:https://metersphere.io/docs/v3.x/installation/offline_installation/

Hello
你这个问题搞定没?我也遇到同样的问题。

啊?我已经在docker安装的metersphere上导入了许多测试用例 ,无法使用离线安装了。
这个mysql的root账号密码是多少啊?

默认账号密码root/Password123@mysql

正如一楼的宝子说的,root/Password123@mysql 对于用docker一键安装是不起作用,访问不了mysql, 无法backup。
后来我用离线安装后root/Password123@mysql可以工作. 我必须把一 键安装已经创建的所有内容要移到这个离线安装后的Metersphere中

对于一键安装,不需要密码,我已经验证过使用这个命令来backup (去掉了密码,docker container为metersphere, sql database为mysql):
docker exec -i metersphere mysqldump -uroot mysql > metersphere.sql
@玉树 麻烦确认一下上述方法正确对于一键安装的metersphere备份sql?

@玉树 ,
根据你在二楼说的,我先一键安装,然后备份/opt/metersphere/data,接下来离线安装,出现mysql unhealthy.不能启动mysql(如果不使用一键安装的./opt/metersphere/data没有问题)。
遇到的错误
2025-02-06 11:42:17+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.38-1.el9 started.
‘/var/lib/mysql/mysql.sock’ → ‘/var/run/mysqld/mysqld.sock’
2025-02-06T03:42:17.749848Z 0 [Warning] [MY-011068] [Server] The syntax ‘–skip-host-cache’ is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2025-02-06T03:42:17.749879Z 0 [Warning] [MY-011068] [Server] The syntax ‘expire-logs-days’ is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2025-02-06T03:42:17.749886Z 0 [Warning] [MY-011070] [Server] ‘binlog_format’ is deprecated and will be removed in a future release.
2025-02-06T03:42:17.749889Z 0 [Warning] [MY-011069] [Server] The syntax ‘–character-set-client-handshake’ is deprecated and will be removed in a future release.
2025-02-06T03:42:17.750048Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.38) starting as process 1
2025-02-06T03:42:17.755397Z 1 [System] [MY-011012] [Server] Starting upgrade of data directory.
2025-02-06T03:42:17.755432Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-02-06T03:42:17.809224Z 1 [ERROR] [MY-012224] [InnoDB] Tablespace flags are invalid in datafile: ./ibdata1, Space ID:0, Flags: 21. Please refer to http://dev.mysql.com/doc/refman/8.0/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
2025-02-06T03:42:17.809264Z 1 [ERROR] [MY-012237] [InnoDB] Corrupted page [page id: space=0, page number=0] of datafile ‘./ibdata1’ could not be found in the doublewrite buffer.
2025-02-06T03:42:17.809274Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Data structure corruption.
2025-02-06T03:42:18.309449Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2025-02-06T03:42:18.309726Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2025-02-06T03:42:18.309743Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-02-06T03:42:18.310165Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.38) MySQL Community Server - GPL.
麻烦看一下。谢谢

关键在于你是如何在离线安装中还原在线安装的备份数据的?

我就是根据你们官网上说的下列方法啊。
还原 sql 数据,进入备份 sql 目录,将 sql 复制到 mysql 容器的挂载目录 /opt/metersphere/data/mysql 下

* *cp metersphere.sql /opt/metersphere/data/mysql* *

进入 mysql 容器,登录数据库

* *docker exec -it mysql sh* *mysql -uroot -pPassword123@mysql* *

使用 metersphere 库,并将数据导入到库里

* *use metersphere;* *source /var/lib/mysql/metersphere.sql* *

还原 data 目录数据,进入 ms_data_backup.tar 所在目录

* *mv ms_data_backup.tar /* *tar -xvf ms_data_backup.tar* *

@玉树
我已经搞清楚了一键安装后如何备份和恢复Metersphere.
Metersphere一键安装后的备份和恢复方法 - MeterSphere - 社区论坛 - FIT2CLOUD 飞致云

主要是有3个区别:
操作的Docker container变成了metersphere
连接mysql不需要密码
mount到container的Host目录是/root/.metersphere/data

你们评审一下。

谢谢