Laravel php artisan migrate 命令 - 没有错误,也没有控制台输出?



我最近在macOS High Sierra 10.13.6上通过自制软件重新安装了mysql 8.0.19。我可以看到当我做brew services list时,mysql 服务已启动。我还可以通过控制台登录mysql -u root并执行查询等等。

我已经使用 Valet 安装了一个新的 Laravel 项目,但无法运行数据库迁移。我的环境变量看起来都是正确的:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

我可以使用此信息连接到MySQL Workbench(没有根pw(。然而,每当我运行php artisan migrate时,我都不会收到任何错误,也没有控制台输出。它只是卡住了。当我进入php artisan tinker然后DB::connection()->getPdo()时也会发生同样的事情.没有输出,也没有错误。storage/logs也不会记录任何内容。

相关config/database.php

...
'default' => env('DB_CONNECTION', 'mysql'),

'connections' => [

'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_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'),
]) : [],
],
],
...

在随机视图上转储DB::connection()会产生正确的配置:

protected 'config' => 
array (size=15)
'driver' => string 'mysql' (length=5)
'host' => string '127.0.0.1' (length=9)
'port' => string '3306' (length=4)
'database' => string 'laravel' (length=7)
'username' => string 'root' (length=4)
'password' => string '' (length=0)
'unix_socket' => string '' (length=0)
'charset' => string 'utf8mb4' (length=7)
'collation' => string 'utf8mb4_unicode_ci' (length=18)
'prefix' => string '' (length=0)
'prefix_indexes' => boolean true
'strict' => boolean true
'engine' => null
'options' => 
array (size=0)
empty
'name' => string 'mysql' (length=5)

我尝试在普通的PHP脚本上运行一个简单的new mysqli(...),但它也失败了,所以这不是Laravel的事情。

在对此进行了更多研究之后,解决方案只是降级我的PHP/MySQL版本。我使用的是PHP 7.4+和MySQL 8+。我现在已经回滚到 PHP ~7.3 和 MySQL ~5.7。

我遇到了这个最近的线程,其中详细介绍了问题。与新的默认MySQL身份验证插件有关。我尝试在数据库中手动更改它,如该线程以及此处所述,但没有任何运气。

回滚对我来说最容易,谢谢大家!

最新更新