首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel构件迁移命令-没有错误,也没有控制台输出?

问Laravel构件迁移命令-没有错误,也没有控制台输出?
EN

Stack Overflow用户
提问于 2020-01-19 17:35:28
回答 1查看 552关注 0票数 1

我最近在macOS HighSiera10.13.6上通过自制完成了MySQL8.0.19的新安装。我可以看到,mysql服务是在我执行brew services list时启动的。我也可以通过控制台使用mysql -u root登录,执行查询等等。

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

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

我可以连接到MySQL工作台使用这些信息(没有根pw)。然而,每当我运行php artisan migrate时,我就没有任何错误,也没有任何控制台输出。只是卡住了。当我使用php artisan tinker,然后是DB::connection()->getPdo()时,也会发生同样的事情。没有输出也没有错误。也没有任何东西登录到storage/logs中。

相关config/database.php

代码语言:javascript
复制
...

'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()转储到随机视图中将产生正确的配置:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-21 08:02:44

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

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

我偶然发现了最近的线索,它详细描述了这个问题。与新的默认MySQL身份验证插件有关。我试图在数据库中手动更改它,就像在该线程和这里中一样详细,但是没有任何进展。

回滚对我来说是最简单的,谢谢大家!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59812646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档