• <tfoot id='qQj50'></tfoot>

      <i id='qQj50'><tr id='qQj50'><dt id='qQj50'><q id='qQj50'><span id='qQj50'><b id='qQj50'><form id='qQj50'><ins id='qQj50'></ins><ul id='qQj50'></ul><sub id='qQj50'></sub></form><legend id='qQj50'></legend><bdo id='qQj50'><pre id='qQj50'><center id='qQj50'></center></pre></bdo></b><th id='qQj50'></th></span></q></dt></tr></i><div id='qQj50'><tfoot id='qQj50'></tfoot><dl id='qQj50'><fieldset id='qQj50'></fieldset></dl></div>

    1. <small id='qQj50'></small><noframes id='qQj50'>

      • <bdo id='qQj50'></bdo><ul id='qQj50'></ul>

      1. <legend id='qQj50'><style id='qQj50'><dir id='qQj50'><q id='qQj50'></q></dir></style></legend>

        从 Django 连接到 RDS MySQL 时出现 SSL 连接错误

        时间:2023-06-24

        <i id='gze5g'><tr id='gze5g'><dt id='gze5g'><q id='gze5g'><span id='gze5g'><b id='gze5g'><form id='gze5g'><ins id='gze5g'></ins><ul id='gze5g'></ul><sub id='gze5g'></sub></form><legend id='gze5g'></legend><bdo id='gze5g'><pre id='gze5g'><center id='gze5g'></center></pre></bdo></b><th id='gze5g'></th></span></q></dt></tr></i><div id='gze5g'><tfoot id='gze5g'></tfoot><dl id='gze5g'><fieldset id='gze5g'></fieldset></dl></div>

        <tfoot id='gze5g'></tfoot>

        <small id='gze5g'></small><noframes id='gze5g'>

          • <bdo id='gze5g'></bdo><ul id='gze5g'></ul>
                <tbody id='gze5g'></tbody>

                  <legend id='gze5g'><style id='gze5g'><dir id='gze5g'><q id='gze5g'></q></dir></style></legend>
                  本文介绍了从 Django 连接到 RDS MySQL 时出现 SSL 连接错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试在 Heroku 上部署一个 Django 应用程序,并将 RDS 实例作为数据库后端.一切正常,直到我尝试加密连接,然后出现此错误:

                  I'm trying to deploy a Django app on Heroku with an RDS instance as the database backend. Everything is working until I try to encrypt the connection, then I get this error:

                  OperationalError at /path/
                  (2026, 'SSL connection error')
                  

                  设置如下:

                  • 标准 Django 应用程序
                  • 具有安全组的 MySQL RDS 实例允许来自所有 IP 地址的连接
                  • MySQL 用户设置为允许来自任何主机的连接
                  • Amazon 的 pem 已下载并在 Django 设置中指定

                  在 Heroku 上:

                  On Heroku:

                  DATABASE_URL: mysql2://username:password@instance.us-east-1.rds.amazonaws.com:3306/name_staging?sslca=path/to/mysql-ssl-ca-cert.pem
                  

                  在 Django 设置中:

                  In Django settings:

                  DATABASES = {
                      'default': dj_database_url.config()
                  }
                  DATABASES['default']['OPTIONS'] = {'ssl': {'ca': 'mysql-ssl-ca-cert.pem'}}`
                  

                  我已经尝试搜索并阅读了很多关于在 Rails 中设置这种类型的环境的内容,但是关于使用 Django 执行此操作的文档很少甚至不存在.

                  I've tried searching and have read a lot about setting this type of environment up in Rails, but the documentation about doing this with Django is light to non-existent.

                  有没有人成功部署过类似的设置,或者有人想过如何解决这个错误?

                  Has anyone out there successfully deployed a similar setup or does anyone have thoughts on how to solve this error?

                  更新:

                  通过 cli 连接和在 python 解释器中直接使用 MySQLdb 连接一样有效.

                  Connecting via cli works as well as connecting directly using MySQLdb in the python interpreter.

                  推荐答案

                  已解决:

                  pem 文件的路径必须是绝对路径,您不能使用 python 尝试构建绝对路径.

                  The path to the pem file has to be absolute and you can't use python to attempt to build the absolute path.

                  DATABASES = {
                      'default': dj_database_url.config()
                  }
                  DATABASES['default']['OPTIONS'] = {
                      'ssl': {'ca': '/app/project_name/rds/mysql-ssl-ca-cert.pem'}
                  }
                  

                  同样,检测这样的路径不起作用,路径必须是硬编码的:

                  Again, detecting the path like this does not work, the path must be hard coded:

                  DATABASES['default']['OPTIONS'] = {
                      'ssl': {'ca': os.path.join(os.path.dirname(__file__), 'rds', 'mysql-ssl-ca-cert.pem')}
                  }
                  

                  这篇关于从 Django 连接到 RDS MySQL 时出现 SSL 连接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:初始化部署在 AWS EKS 中的 MySQL 数据库 下一篇:MySQL/Amazon RDS 错误:“您没有 SUPER 权限...";

                  相关文章

                    <bdo id='GNU7e'></bdo><ul id='GNU7e'></ul>

                    <small id='GNU7e'></small><noframes id='GNU7e'>

                    <tfoot id='GNU7e'></tfoot>
                  1. <i id='GNU7e'><tr id='GNU7e'><dt id='GNU7e'><q id='GNU7e'><span id='GNU7e'><b id='GNU7e'><form id='GNU7e'><ins id='GNU7e'></ins><ul id='GNU7e'></ul><sub id='GNU7e'></sub></form><legend id='GNU7e'></legend><bdo id='GNU7e'><pre id='GNU7e'><center id='GNU7e'></center></pre></bdo></b><th id='GNU7e'></th></span></q></dt></tr></i><div id='GNU7e'><tfoot id='GNU7e'></tfoot><dl id='GNU7e'><fieldset id='GNU7e'></fieldset></dl></div>

                    <legend id='GNU7e'><style id='GNU7e'><dir id='GNU7e'><q id='GNU7e'></q></dir></style></legend>