Laravel 不接受 .env 文件中的新数据库用户

Laravel does not accept new database user in the .env file

我正在使用不同的用户名设置我的 laravel 开发环境。我不想使用 root 用户访问我的数据库。

顺便说一下,我正在使用 Laradock。所以我没有使用普通的宅基地凭证。

如果我使用新用户,并且 运行 php artisan migrate,它一直给我以下错误:

PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'newuser'@'172.25.0.4' (using password: YES)")

PDO::__construct("mysql:host=mysql;port=3306;dbname=db_name", "db_user", "db_password!", [])

我已经完成了以下步骤:

  1. 重新启动服务器(docker - 向下,然后向上,然后重新启动 docker)
  2. php artisan config:clear
  3. php artisan cache:clear
  4. php artisan config:cache

注意: 如果我使用新用户,它只会抛出此错误,但它对 root 用户完全正常。新用户也有 GRANT ALL 权限。

我的 .env 文件包含:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password

我希望能够 运行 php artisan migrate 使用新的用户凭据而不是默认的 root 用户。

您需要为 DB_HOST 设置正确的值。 如果您的数据库在本地网络中,那么您可以设置 DB_HOST=localhost,或者您可以使用外部 IP 地址,例如 DB_HOST=172.25.0.4

之后运行

php artisan config:cache
php artisan migrate