Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ClearDB默认连接字符串上的reconnect关键字参数导致MySQLdb出错_Python_Django_Heroku_Cleardb - Fatal编程技术网

Python ClearDB默认连接字符串上的reconnect关键字参数导致MySQLdb出错

Python ClearDB默认连接字符串上的reconnect关键字参数导致MySQLdb出错,python,django,heroku,cleardb,Python,Django,Heroku,Cleardb,我向Heroku上传了一个Django应用程序,然后使用Heroku文档中的以下3个命令提供cleardb附加组件: heroku addons:create cleardb:ignite heroku config | grep CLEARDB_DATABASE_URL heroku config:set DATABASE_URL='mysql://adffdadf2341:adf4234@us-cdbr-east.cleardb.com/heroku_db?reconnect=true'

我向Heroku上传了一个Django应用程序,然后使用Heroku文档中的以下3个命令提供cleardb附加组件:

heroku addons:create cleardb:ignite
heroku config | grep CLEARDB_DATABASE_URL
heroku config:set DATABASE_URL='mysql://adffdadf2341:adf4234@us-cdbr-east.cleardb.com/heroku_db?reconnect=true'
看起来一切正常,应用程序正在运行(但没有数据库)。 现在我尝试运行:

$ heroku run python manage.py migrate
这就是我得到的错误:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 355, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 327, in execute
    self.check()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 61, in _run_checks
    issues = run_checks(tags=[Tags.database])
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/checks/registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/checks/database.py", line 10, in check_database_backends
    issues.extend(conn.validation.check(**kwargs))
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/mysql/validation.py", line 9, in check
    issues.extend(self._check_sql_mode(**kwargs))
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/mysql/validation.py", line 13, in _check_sql_mode
    with self.connection.cursor() as cursor:
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/base/base.py", line 254, in cursor
    return self._cursor()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/base/base.py", line 229, in _cursor
    self.ensure_connection()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 274, in get_new_connection
    conn = Database.connect(**conn_params)
  File "/app/.heroku/python/lib/python3.5/site-packages/MySQLdb/__init__.py", line 86, in Connect
    return Connection(*args, **kwargs)
  File "/app/.heroku/python/lib/python3.5/site-packages/MySQLdb/connections.py", line 204, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
TypeError: 'reconnect' is an invalid keyword argument for this function
回溯(最近一次呼叫最后一次):
文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/management/\u_init\u_uuu.py”,第363行,从命令行执行
utility.execute()
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/management/_init__.py”,执行中第355行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py”,第283行,运行于
self.execute(*args,**cmd_选项)
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/management/base.py”,执行中的第327行
self.check()
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/management/base.py”,第359行,选中
包括部署检查=包括部署检查,
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/management/commands/migrate.py”,第61行,在运行检查中
问题=运行检查(标记=[tags.database])
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/checks/registry.py”,运行检查中的第81行
新建错误=检查(应用程序配置=应用程序配置)
文件“/app/.heroku/python/lib/python3.5/site packages/django/core/checks/database.py”,第10行,在check\u database\u backends中
问题.扩展(连接验证.检查(**kwargs))
文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/mysql/validation.py”,第9行,选中
问题.扩展(自检查sql模式(**kwargs))
文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/mysql/validation.py”,第13行,处于检查sql模式
使用self.connection.cursor()作为游标:
游标中的文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/base/base.py”,第254行
返回自我。_cursor()
文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/base/base.py”,第229行,在光标处
self.sure_连接()
文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/base/base.py”,第213行,在确保连接中
self.connect()
文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/base/base.py”,第189行,在connect中
self.connection=self.get_new_connection(连接参数)
文件“/app/.heroku/python/lib/python3.5/site packages/django/db/backends/mysql/base.py”,第274行,在get\u new\u连接中
conn=数据库.connect(**conn_参数)
文件“/app/.heroku/python/lib/python3.5/site-packages/MySQLdb/_-init__.py”,第86行,在Connect中
返回连接(*args,**kwargs)
文件“/app/.heroku/python/lib/python3.5/site packages/MySQLdb/connections.py”,第204行,在__
超级(连接,自).\uuuu初始化(*args,**kwargs2)
TypeError:“reconnect”是此函数的无效关键字参数

问题来自何处?我如何解决它?

从数据库的末尾删除
?重新连接=true


数据库后面的参数是MySQL服务器的参数。在这种情况下,如果连接断开,它会要求重新连接。MySQLdb包似乎不支持该参数。

尝试从数据库末尾删除“?reconnect=true”\u url谢谢,它可以工作!“重新连接=真”是什么意思?再次感谢您的帮助!:)我还有一个问题……如果我再等几秒钟,我似乎就失去了连接:“(2013年,在查询过程中失去了与MySQL服务器的连接”)。但是如果我刷新页面,它就会工作。你知道我该怎么办吗?是否有其他配置需要调整?谢谢你的建议!:)我在使用MySQLdb和ClearDB时遇到了完全相同的问题。这似乎是由于删除
重新连接
关键字参数引起的。如果我能想出一种方法,将reconnect设置为True,而不触发来自MySQLdb@TobyWeed我知道这是最近没有写过的,但是你找到解决办法了吗?我得到了一个关于使用SQLAlchemy池的提示,你能确认一下吗?有人知道这个2013年失去连接问题的解决方案吗?我一直在挖掘stackoverflow、heroku支持等,但运气不好