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

Laravel部署到Heroku连接Azure数据库报unsupported driver[https]如何解决

错误原因

你配置的DATABASE_URL默认值是Azure phpMyAdmin管理后台的网页地址,并非MySQL服务的程序连接地址。Laravel解析数据库连接URL时识别到https前缀,尝试调用不存在的https数据库驱动,直接触发了该报错。

解决步骤

  • 第一步:获取Azure MySQL实例的正确连接参数
    登录Azure控制台,进入你部署的MySQL服务详情页,找到连接参数板块,复制官方提供的数据库主机地址、端口、数据库名、用户名、密码,不要使用phpMyAdmin的页面地址作为连接配置。
  • 第二步:修正database.php配置
    首先修正语法错误,你当前配置中'driver' => 'mysql'末尾缺少逗号,会导致配置解析异常。其次建议删除mysql配置块中的url项,或者将该项的默认值设为空字符串,因为你已经单独配置了host、port、用户名密码等参数,不需要通过URL统一配置,避免环境变量冲突:
    'mysql' => [
        'driver' => 'mysql', // 补全逗号
        // 删掉下面这行,或者改为'url' => env('DATABASE_URL', ''),
        // 'url' => env('DATABASE_URL','https://firstsqlaap.scm.azurewebsites.net/phpMyAdmin/db_structure.php?server=1&db=localdb&token=51b0b3471e798a712e129bcd1ebe5b01'),
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '53082'),
        'database' => env('DB_DATABASE', 'localdb'),
        'username' => env('DB_USERNAME', 'user'),
        'password' => env('DB_PASSWORD', 'pass'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],
    
  • 第三步:配置Heroku环境变量
    进入Heroku应用的Settings页面,找到Config Vars板块,添加/修改以下变量:
    • 替换DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD为你从Azure拿到的正确参数
    • 新增MYSQL_ATTR_SSL_CA,值设为/etc/ssl/certs/ca-certificates.crt,适配Azure MySQL强制SSL连接的要求
    • 如果存在DATABASE_URL变量请直接删除,避免优先级高于单独配置的参数导致报错
  • 第四步:验证扩展依赖
    在composer.json的require块中添加"ext-pdo_mysql": "*",确保Heroku部署时自动启用PDO MySQL扩展,不会出现驱动缺失问题。

额外说明

你不需要创建迁移文件,只要数据库连接参数正确,已有的Azure数据库可以直接正常读写,SESSION_DRIVER设为database的配置也可以正常生效,不会再出现419错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 08:42:02