无法连接到php artisan migrate

时间:2018-03-15 06:27:30

标签: mysql laravel vagrant homestead laravel-migrations

我正在尝试迁移我创建的迁移,但我遇到了这个错误:

  

SQLSTATE [HY000] [1045]拒绝访问用户'php'@'localhost'(使用密码:YES)(SQL:select * from information_schema.tables where table_schema = php and table_name = migrations)

我正在使用宅基地,当我在流浪者vm上运行其他工匠命令时一切正常,我正在使用MacOS高山脉(我读到新文件格式和流浪者有问题,但它不是我的情况)和xampp。

我已经阅读了我发现的与此问题有关的所有内容(这是两天的痛苦)。我试过了:

  • 在我的.env文件中使用127.0.0.1而不是localhost,反之亦然
  • 在我的config / database.php中键入完全相同的.env配置(但我读过这是一个不好的做法,因为配置在env()方法中,因此它们采用.env值默认情况下)
  • 我已将mysql端口从3306更改为33060
  • 我添加了这一行Schema :: defaultStringLength(191);到appserviceprovider.php中的boot()
  • 我的用户拥有正确的凭据和所有权限,我在创建迁移之前创建了数据库
  • 当我运行netstat -ln |时在xampp终端上的grep mysql它返回mysql套接字端口是这样的:
  

unix 2 [ACC] STREAM LISTENING 86094 /opt/lampp/var/mysql/mysql.sock

这让我感到困惑,因为在xampp的/ etc的my.cnf文件中,端口设置为3306,我已经尝试将.env端口更改为86094,但不起作用。

当我在vagrant vm中运行相同的命令(netstat -ln | grep mysql)时,它返回守护进程套接字的端口:

  

unix 2 [ACC] STREAM LISTENING 20157 /var/run/mysqld/mysqld.sock

我不知道为什么同样的命令也不会在vagrant vm中返回mysql套接字端口。

我正在使用Laravel 5.6和php 7.1.7

一些文件作为参考:

.ENV

B_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=33060
DB_DATABASE=php
DB_USERNAME=php
DB_PASSWORD=php123

database.php中

'mysql' => [
        'driver' => 'mysql',
        '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' => '',
        'strict' => true,
        'engine' => null,
    ]

composer.json

"require": {
    "php": ">=7.1.3",
    "fideloper/proxy": "~4.0",
    "laravel/framework": "5.6.*",
    "laravel/tinker": "~1.0"
}

Homestead.yaml

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/code
     to: /home/vagrant/code
     type: "nfs"
sites:
    - map: homestead.test
      to: /home/vagrant/code/facturacion/public

databases:
    - homestead

在此先感谢,如果有人可以帮助我,我真的很感激,这让我感到疯狂

1 个答案:

答案 0 :(得分:0)

您正在使用vagrant执行此操作

vagrant ssh
php artisan migrate