无法在新 Laravel 项目中迁移

cannot migrate in new Laravel project

所以,我正在尝试从头开始创建一个 laravel 项目。
我运行以下:

composer global require "laravel/installer=~1.1" //this code was not necessary
composer create-project laravel/laravel my-project-name
php artisan serve

现在我准备好新的 laravel 项目,并尝试 运行:

php artisan migrate

但返回错误:

SQLSTATE[HY000] [2002] Connection refused

我查看了类似问题的其他答案,但没有一个解决了问题。
我也尝试创建一个新的 mysql 用户,但它返回了另一个错误:

SQLSTATE[HY000] [1698] Access denied

如有任何帮助,我们将不胜感激!

我当前的环境:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=password

我可以在 运行 php artisan serve 之后转到 127.0.0.1:8000 但我无法访问 127.0.0.1:3306 我认为 phpmyadmin 在哪里?
我还没有改变任何东西,但如果有任何其他代码我应该分享请让我知道!

更新
正如@brombeer 所提到的,我无法访问 127.0.0.1:3306 是因为我没有安装 phpmyadmin。
我只是感到困惑,因为我一直在使用 docker 处理很多项目,并自动假设它已经安装在此设备上(我认为 docker 会自动设置 phpmyadmin?)

  1. 确保 mysql 已安装。
  2. 确保 mysql 是 运行。
  3. 确保您在 mysql 中添加了一个 laravel 数据库,与您的 .env
  4. 匹配
  5. 确保您已从 .env 添加了用户。它应该可以使用您的 .env
  6. 中的密码从您的 .env 访问数据库

完成前两个步骤的具体步骤会因您的环境和操作系统而异,但通常在 Whosebug 和网络上都有非常详细的介绍。

创建数据库应该是 create database laravel; 在 mysql 作为 root 用户的事情。

添加用户就像创建用户一样简单 'newuser'@'localhost' IDENTIFIED BY 'password';

授予数据库权限,GRANT ALL PRIVILEGES ON laravel.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES

请先检查3306端口是否被占用,并检查您的防火墙是否阻止了该端口。 如果没问题,请使用 php artisan config:clear 清理缓存。 如果这不能解决您的问题,您真的有可能需要按照 brombeer 的建议重新安装 laravel。 希望能帮到你

所以,这是一个权限错误。
我无法使用 root 进行迁移,因为它现在需要 sudo,因此我按照第一个答案选项 2 中的步骤创建了一个新用户

我必须改变的一件事是我必须 运行

UPDATE user SET plugin='mysql_native_password' WHERE User='YOUR_SYSTEM_USER';

而不是

UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';

另外正如@brombeer 提到的,我没有安装 phpmyadmin。我可以在我正在从事的其他项目上访问 phpmyadmin,因为他们有一个 docker。