Elastic Beanstalk 应用程序无法连接到数据库,但服务器可以
Elastic Beanstalk Application Can't Connect to Database but Server Can
我有一个无法连接到数据库的 Elastic Beanstalk 应用程序,但它 运行 所在的服务器可以很好地连接到数据库。
当我尝试部署我的弹性 beanstalk 应用程序时,它给我一个数据库错误 Access Denied
(部署过程需要连接到数据库才能 运行 迁移。我的数据库是RDS。我在环境中配置了数据库的环境变量。我设置了安全组以允许环境服务器连接到 RDS。当我 ssh 进入服务器时,我可以通过数据库终端打开数据库连接以数据库,只是应用程序连接不上,怎么回事?
问题出在数据库密码中的非字母数字字符。在这种情况下,罪魁祸首是“$”。将数据库密码改为纯字母数字即可解决。
Elastic beanstalk 环境变量通过它生成的 shell 脚本传递给您的应用程序。如果您的密码中有美元符号,Linux 会将其解释为密码中嵌入的 shell 变量,并将忽略密码中美元符号后的任何内容。
我有一个无法连接到数据库的 Elastic Beanstalk 应用程序,但它 运行 所在的服务器可以很好地连接到数据库。
当我尝试部署我的弹性 beanstalk 应用程序时,它给我一个数据库错误 Access Denied
(部署过程需要连接到数据库才能 运行 迁移。我的数据库是RDS。我在环境中配置了数据库的环境变量。我设置了安全组以允许环境服务器连接到 RDS。当我 ssh 进入服务器时,我可以通过数据库终端打开数据库连接以数据库,只是应用程序连接不上,怎么回事?
问题出在数据库密码中的非字母数字字符。在这种情况下,罪魁祸首是“$”。将数据库密码改为纯字母数字即可解决。
Elastic beanstalk 环境变量通过它生成的 shell 脚本传递给您的应用程序。如果您的密码中有美元符号,Linux 会将其解释为密码中嵌入的 shell 变量,并将忽略密码中美元符号后的任何内容。