我正在将 Laravel 应用程序部署到 Azure(Web 应用程序 + Mysql),到目前为止我执行了以下步骤:
1-在应用程序中激活Mysql
2- 连接到 BitBucket 存储库并确保代码已同步
3-创建.env文件并设置数据库变量如下
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=port form Mysql connection string
DB_DATABASE=localdb
DB_USERNAME=azure
DB_PASSWORD=password form Mysql connection string
4- Ran php artisan config:cache
问题 :
Running php artisan migrate
返回此错误:
SQLSTATE[HY000] [1045] Access denied for user 'azure'@'localhost' (using pa
ssword: YES) (SQL: select * from information_schema.tables where table_sche
ma = localdb and table_name = migrations and table_type = 'BASE TABLE')
奇怪的是,我跑了SHOW GRANTS FOR CURRENT_USER
在 PhpMyadmin 中它返回:GRANT ALL PRIVILEGES ON *.* TO 'azure'@'localhost'
P.s:我从 Kudu 调试控制台获取了数据库凭据,并确保密码或用户名前后没有空格
这是 Laravel 版本 7.9.* 中 .env 文件中变量 DB_PASSWORD 的问题。
如果你的密码包含“#”,Laravel 会对该符号后面的每个字符进行注释。例如,如果您的密码是 DB_PASSWORD = 85SF#G52a@ Laravel 会将其解释为 DB_PASSWORD = 85SF 并忽略其余字符。
解决方案
将 DB_PASSWORD 变量的值用双引号引起来,如下所示:
DB_PASSWORD="85SF#G52a@"
我花了2天时间才发现这个问题,希望对遇到同样问题的人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)