> 技术文档 > mayfly-go:web 版 linux、数据库等管理平台

mayfly-go:web 版 linux、数据库等管理平台

mayfly-go是web 版 linux(终端[终端回放] 文件 脚本 进程 计划任务)、数据库(mysql postgres oracle sqlserver 达梦 高斯 sqlite)、redis(单机 哨兵 集群)、mongo 等集工单流程审批于一体的统一管理操作平台

部署

具体部署见:部署 · 语雀

安装包部署

Ubuntu的apt包里没有,所以要手工下载安装。

前往下载地址下载对应版本的安装包:mayfly-go 发行版 - Gitee.com

解压,然后执行startup.sh即可:

wget https://gitee.com/dromara/mayfly-go/releases/download/v1.7.4/mayfly-go-linux-amd64.zipunzip mayfly-go-linux-amd64.zip cd mayfly-go-linux-amd64/# 修改配置文件cp config.yml.example config.yml# 启动mayfly-gosh startup.sh # 停止mayfly-gosh shutdown.sh 

现在的新版本直接就有config.yml文件了,不用再执行cp config.yml.example config.yml

数据库mysql需要配置一下,或者不用mysql,直接使用sqlite 。编辑config.yml文件:

# 若存在mysql配置,优先使用mysql#mysql:# host: mysql:3306# username: root# password: 111049# db-name: mayfly-go# config: charset=utf8&loc=Local&parseTime=true# max-idle-conns: 5sqlite: path: ./mayfly-go.sqlite max-idle-conns: 5

使用docker部署

docker pull ccr.ccs.tencentyun.com/mayfly/mayfly-go:v1.7.4

docker-compose部署

执行

docker-compose up 

使用

启动后系统会起来18888端口服务,直接登录18888端口即可。若有报错,比如mysql连不上等,需要排查问题。

配置端口转发

配置nginx端口转发(不需要)

服务启动后,只绑定了本地端口,所以网络上的其它及其是无法连上的(这里理解错误,其实是全网侦听的)。这时候需要配置端口转发(其实不需要)。这里以nginx配置为例:

 

upstream mayfly-go { server [2409:8a3c:40c0:5b08:a00:27ff:fee8:e484]:18888;}server { keepalive_requests 120; #单连接请求上限次数。 listen 80; #监听端口 server_name xxx.net; #监听地址 proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; #需要配置支持websocket proxy_set_header Connection \'upgrade\'; #需要配置支持websocket location / { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。 proxy_pass http://mayfly-go; #请求转向mayfly-go 定义的服务器列表 } }

配置vagrant端口转发

因为采用的是vagrant配置VirtualBox虚拟机,所以可以在vagrant的配置里,设置端口转发

 config.vm.network \"forwarded_port\", guest: 18888, host: 18888, auto_correct: true

登录

用户名是admin

口令是admin123.

费了好大劲才登上来:

但是没找到啥能配置或管理的地方,也许是因为这台机器太新了,没啥可管理的。

总结:使用感受

mayfly-go的目的是减轻管理员的工作量,提高工作效率。整个文档相对来说,比较详细。但是一些配置细节需要有相关经验才行。

反正我是没找到那些常规配置的地方.....

调试

执行报错mysql连接失败

024-03-05 12:40:31.330 [ERROR] [mayfly-go/pkg/starter.initMysql (gorm.go:43)] : 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]panic: 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]

因为测试的机器没有开3306端口,而是采用进行通信的方法,所以先去掉config.yml里面的mysql配置,直接使用sqlite测试。

远程无法连接18888端口

发现服务只起了ipv6的18888端口,没有起ipv4的。但是奇怪的是本机是可以连上的,当然连上之后可以看到是跟本地的ipv4地址的18888端口通信的。真奇怪

原来起了ipv6的,就有ipv4的。跟下面问题一样

看到只有ipv6端口侦听

tcp6       0      0 :::18888                :::*                    LISTEN 

原来有这个ipv6的,ipv4端口也侦听的

没有密码登不上去

后来在issue里面找到,用户名admin,密码admin123. 注意是9个字母,最后一个字母是\".\"

名词解释:Redis

Redis是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

连mysql报错[error] failed to initialize database, got error dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving

[error] failed to initialize database, got error dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving
2025-09-02 04:14:20.747 [ERROR] [mayfly-go/pkg/starter.initMysql (gorm.go:43)] : 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]
panic: 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]

写域名解析在/etc/hosts文件中:

# add for mysql 127.0.0.1 mysql

搞定

报错permission denied while trying to connect to the Docker daemon socket

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get \"http://%!F(MISSING)var%!F(MISSING)run%!F(MISSING)docker.sock/v1.51/info\": dial unix /var/run/docker.sock: connect: permission denied

这个错误表明当前用户没有权限访问Docker守护进程的Unix套接字文件(/var/run/docker.sock)

估计是因为没开docker服务。