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

Windows10+MAMP PRO5环境下Laravel9执行php artisan migrate报could not find driver错误

Laravel迁移报错:could not find driver 解决方案

错误信息

Illuminate\Database\QueryException

could not find driver (SQL: select * from information_schema.tables where table_schema = laravel_app_db and table_name = migrations and table_type = 'BASE TABLE')

at C:\MAMP\htdocs\laravel_app\vendor\laravel\framework\src\Illuminate\Database\Connection.php:759
    755▕         // If an exception occurs when attempting to run a query, we'll format the error
    756▕         // message to include the bindings with SQL, which will make this exception a
    757▕         // lot more helpful to the developer instead of just the database's errors.
    758▕         catch (Exception $e) {
  ➜ 759▕             throw new QueryException(
    760▕                 $query, $this->prepareBindings($bindings), $e
    761▕             );
    762▕         }
    763▕     }

  1   C:\MAMP\htdocs\laravel_app\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDOException::("could not find driver")

  2   C:\MAMP\htdocs\laravel_app\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDO::__construct("mysql:host=127.0.0.1;port=8889;dbname=laravel_app_db", "root", "root", [])

环境信息

  • Windows 10 Pro
  • PHP 8.1.0(MAMP PRO 5自带)
  • MAMP PRO 5,已通过phpMyAdmin创建laravel_app_db数据库,MySQL端口配置为8889
  • Laravel项目已正常安装并可访问页面,仅数据库迁移步骤报错

已尝试的解决方法

  • 启用MAMP PHP目录下php.ini中的php_openssl.dll、php_mysqli.dll、php_pdo_mysql.dll扩展
  • 修改.env文件中的数据库连接配置(主机、端口、库名、账号密码)
  • 在AppServiceProvider.php中添加Schema::defaultStringLength(191)配置
  • 修改database.php中的MySQL连接参数

有效解决方案

1. 确保命令行使用MAMP自带的PHP版本

Windows默认会优先使用系统自带的PHP(如果已安装),而非MAMP的PHP,导致CLI环境未加载MAMP中配置的扩展:

  • 打开命令行,执行php -v,查看当前使用的PHP版本是否为MAMP的8.1.0
  • 如果版本不符,将MAMP的PHP路径(C:\MAMP\bin\php\php8.1.0)添加到系统环境变量PATH的最前端
  • 重启命令行,再次执行php -v确认版本正确

2. 验证PHP扩展是否加载成功

在命令行执行php -m,查看输出列表中是否包含pdo_mysql:

  • 如果未找到,检查MAMP的php.ini文件:
    • 确认extension_dir设置正确,应为extension_dir = "ext"(指向PHP目录下的ext文件夹)
    • 确认extension=php_pdo_mysql.dll前没有注释符号;
    • 检查ext文件夹中是否存在php_pdo_mysql.dll文件

3. 重启服务并重新执行迁移

  • 重启MAMP的MySQL和Apache服务
  • 在项目根目录执行php artisan migrate

附用户配置文件(供参考)

AppServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema; //<---- added this line

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */

    public function boot()
    {
        Schema::defaultStringLength(191); //<---- added this line
    }
}

database.php(MySQL配置段)

'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '8889'),
        'database' => env('DB_DATABASE', 'laravel_app_db'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'root'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

php.ini(已启用相关扩展)

extension=php_bz2.dll
extension=php_gd.dll
;extension=php_gd2.dll
extension=php_gettext.dll
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_mysqli.dll
extension=php_pdo_sqlite.dll 
extension=php_sqlite3.dll
extension=php_curl.dll
extension=php_openssl.dll
extension=php_imagick.dll
extension=php_pdo_mysql.dll
;extension=php_apc.dll
;extension=php_apcu.dll
;extension=php_eaccelerator.dll
;extension=php_xcache.dll
;zend_extension=php_opcache.dll

.env(数据库配置段)

APP_NAME=laravel_app
APP_ENV=local
APP_KEY=base64:TIlPzLirZ+9Jw6Am0m4XDEodGxmbc8wXSAKQ0XDb5fU=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel_app_db
DB_USERNAME=root
DB_PASSWORD=root

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:10:23