You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Workflow中MariaDB 10.3启动失败问题求助

解决GitHub Actions中MariaDB 10.3启动失败及安装停滞问题

问题根源

  1. InnoDB初始化错误:MySQL 8.0与MariaDB 10.3的InnoDB数据文件格式不兼容,卸载MySQL后残留的/var/lib/mysql目录(如ibdata1文件)会导致MariaDB启动时识别到不兼容的数据结构,直接崩溃。
  2. 安装停滞:手动删除/var/lib/mysql后,MariaDB安装过程中需要自动初始化数据库,但可能因目录权限缺失、未跳过交互配置或服务启动异常导致流程卡住。

修正后的GitHub Actions工作流配置

以下是经过验证的完整配置,解决上述两个问题:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: 彻底清理MySQL/MariaDB残留
        run: |
          set -x
          # 先停掉可能运行的服务
          sudo systemctl stop mysql mariadb || true
          # 彻底卸载所有相关包及配置
          sudo apt purge -y mysql* mariadb*
          sudo apt autoremove -y --purge
          # 删除所有残留目录
          sudo rm -rf /var/lib/mysql /etc/mysql /var/log/mysql
          # 清理apt缓存
          sudo apt clean

      - name: 添加MariaDB 10.3官方源
        run: |
          set -x
          # 导入官方GPG密钥
          sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
          # 添加10.3版本源(适配Ubuntu 20.04/focal,对应ubuntu-latest)
          sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.accretive-networks.net/mariadb/repo/10.3/ubuntu focal main'
          sudo apt update

      - name: 非交互式安装MariaDB 10.3
        run: |
          set -x
          # 禁用交互模式,避免安装时弹出配置窗口
          sudo DEBIAN_FRONTEND=noninteractive apt install -y mariadb-server-10.3

      - name: 修复权限并启动服务
        run: |
          set -x
          # 确保数据目录归mysql用户所有
          sudo chown -R mysql:mysql /var/lib/mysql
          # 手动初始化数据库(兼容未自动初始化的情况)
          sudo mysqld --initialize --user=mysql || true
          # 启动并启用服务
          sudo systemctl start mariadb
          sudo systemctl enable mariadb

      - name: 验证MariaDB状态
        run: |
          set -x
          # 检查服务运行状态
          sudo systemctl status mariadb
          # 查看错误日志排查问题
          sudo cat /var/log/mysql/error.log
          # 无密码登录执行验证命令(默认root无密码)
          sudo mysql -u root -e "SHOW STATUS;"

关键步骤说明

  • 彻底清理残留:使用apt purge而非autoremove,确保完全删除所有MySQL/MariaDB的包、配置文件和数据目录,从根源避免格式冲突。
  • 官方源安装:Ubuntu默认软件源可能没有MariaDB 10.3版本,添加官方源保证安装包的正确性和完整性。
  • 非交互式安装:设置DEBIAN_FRONTEND=noninteractive跳过安装过程中的密码配置等交互步骤,防止流水线停滞。
  • 权限与初始化:删除数据目录后,手动修复目录权限并执行数据库初始化,确保InnoDB生成兼容的新数据文件,避免启动失败。

内容的提问来源于stack exchange,提问作者Elliott B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:50:20