Jor*_*ier 6 mysql django ssl heroku amazon-rds
我正在尝试使用RDS实例作为数据库后端在Heroku上部署Django应用程序.一切正常,直到我尝试加密连接,然后我收到此错误:
OperationalError at /path/
(2026, 'SSL connection error')
Run Code Online (Sandbox Code Playgroud)
这是设置:
在Heroku上:
DATABASE_URL: mysql2://username:password@instance.us-east-1.rds.amazonaws.com:3306/name_staging?sslca=path/to/mysql-ssl-ca-cert.pem
Run Code Online (Sandbox Code Playgroud)
在Django设置中:
DATABASES = {
'default': dj_database_url.config()
}
DATABASES['default']['OPTIONS'] = {'ssl': {'ca': 'mysql-ssl-ca-cert.pem'}}`
Run Code Online (Sandbox Code Playgroud)
我已经尝试过搜索并且已经阅读了很多关于在Rails中设置这种类型环境的内容,但是关于使用Django执行此操作的文档很轻松到不存在.
有没有人成功地部署了类似的设置或有没有人有如何解决这个错误的想法?
更新:
通过cli连接以及在python解释器中使用MySQLdb直接连接.
解决了:
pem文件的路径必须是绝对的,你不能使用python来尝试构建绝对路径.
DATABASES = {
'default': dj_database_url.config()
}
DATABASES['default']['OPTIONS'] = {
'ssl': {'ca': '/app/project_name/rds/mysql-ssl-ca-cert.pem'}
}
Run Code Online (Sandbox Code Playgroud)
同样,检测这样的路径不起作用,路径必须是硬编码的:
DATABASES['default']['OPTIONS'] = {
'ssl': {'ca': os.path.join(os.path.dirname(__file__), 'rds', 'mysql-ssl-ca-cert.pem')}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3216 次 |
最近记录: |