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

运行Adonis JS迁移时遇MariaDB连接中断错误求助

Adonis JS迁移时MariaDB连接中断问题排查方案
  • 检查MariaDB与mysql2驱动的兼容性
    低版本MariaDB可能不支持带useTz参数的timestamp类型,可尝试移除该参数,改用基础的时间类型:

    table.timestamp('expires_at').nullable()
    table.timestamp('created_at').notNullable()
    

    或直接替换为MariaDB原生支持的datetime类型:

    table.datetime('expires_at').nullable()
    table.datetime('created_at').notNullable()
    
  • 验证关联表的合法性
    手动登录MariaDB,确认users表已正常创建,且id字段为unsigned integer类型——外键关联要求字段类型完全匹配,类型不匹配可能触发服务器异常断开。

  • 调整数据库连接超时配置
    在config/database.ts的mysql连接配置中,增加超时参数避免连接被服务器主动回收:

    connections: {
      mysql: {
        client: 'mysql2',
        connection: {
          host: Env.get('DB_HOST'),
          port: Env.get('DB_PORT'),
          user: Env.get('DB_USER'),
          password: Env.get('DB_PASSWORD'),
          database: Env.get('DB_NAME'),
          // 新增超时配置
          timeout: 60000,
          connectTimeout: 60000,
        },
        // 其他原有配置
      }
    }
    
  • 查看MariaDB服务器日志
    检查MariaDB的错误日志(通常路径为/var/log/mariadb/),查找连接断开的具体原因,比如内存不足、磁盘空间已满、权限异常等系统级问题。

  • 重新生成迁移文件重试
    删除当前的api_tokens迁移文件,执行node ace make:migration api_tokens重新生成迁移代码,对比自动生成的内容与原文件的差异后,再次运行node ace migration:run。

内容的提问来源于stack exchange,提问作者marcelo.delta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:20:39