使用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"
我没有运行虚拟环境。
从粘贴的内容来看,.env文件似乎不包含DB连接信息。
env文件中的DATABASE_URL应包含所有连接信息。那里没有对shell env变量的解释。因此,它不会将db_user转换为"db_user";根";在.env.中
例如,你的.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基本上,secret会为.env文件生成一个解密密钥。因此,您只需要确保解密密钥的安全,并能够对.env文件进行版本控制。