使用 Windows 10
php bin/console make:migration
In AbstractMySQLDriver.php line 112:
An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost
' (using password: YES)
In Exception.php line 18:
SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)
In PDOConnection.php line 39:
SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)
.env 文件
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"
我尝试在我的 shell 和 .env 文件中定义我的环境变量
set db_user=root
set db_password=12345678
set db_name=loremipsum
我让它工作的唯一方法是像这样对我的变量进行硬编码:
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"
我没有运行虚拟环境。
答案 0 :(得分:0)
从您粘贴的内容来看,您的 .env 文件似乎不包含您的数据库连接信息。
.env 文件中的 DATABASE_URL 应包含所有连接信息。那里没有对 shell env 变量的解释。因此,它不会将 db_user 转换为 .env 中的“root”。
例如,您的.env 应该是这样的。您也可以在 .env
中省略双引号DATABASE_URL=mysql://root:12345678@127.0.0.1:3306/loremipsum?serverVersion=5.7
也许您不喜欢将您的凭据存储在该文件中。 Symfony 为您提供了解决方案,秘密。 https://symfony.com/doc/current/configuration/secrets.html 基本上,secrets 会为你的 .env 文件生成一个解密密钥。因此,您只需要保护解密密钥并能够对您的 .env 文件进行版本控制。