【问题标题】:Peewee - Can't connect to MySQL server on hostPeewee - 无法连接到主机上的 MySQL 服务器
【发布时间】:2015-09-05 12:40:17
【问题描述】:

我正在使用 peewee ORM 开发基于 Flask 的 python 应用程序。我最初连接到本地存储在我的机器上的数据库,现在我正在尝试转换为远程连接到数据库。我已经通过服务器的 cpanel 部分在 phpmyadmin 中设置了数据库。

问题

我已将 IP 地址设置为能够远程访问我的数据库,但是当我尝试连接到数据库时出现以下错误:

Traceback (most recent call last):
  File "app.py", line 294, in <module>
    models.initialize()
  File "/Users/wyssuser/Desktop/dscraper/models.py", line 145, in initialize
    DATABASE.connect()
  File "/Library/Python/2.7/site-packages/peewee.py", line 2767, in connect
    self.__local.closed = False
  File "/Library/Python/2.7/site-packages/peewee.py", line 2688, in __exit__
    reraise(new_type, new_type(*exc_value.args), traceback)
  File "/Library/Python/2.7/site-packages/peewee.py", line 2766, in connect
    **self.connect_kwargs)
  File "/Library/Python/2.7/site-packages/peewee.py", line 3209, in _connect
    return mysql.connect(db=database, **conn_kwargs)
  File "/Library/Python/2.7/site-packages/pymysql/__init__.py", line 88, in Connect
    return Connection(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/pymysql/connections.py", line 644, in __init__
    self._connect()
  File "/Library/Python/2.7/site-packages/pymysql/connections.py", line 869, in _connect
    raise exc
peewee.OperationalError: (2003, "Can't connect to MySQL server on '142.157.25.22' ([Errno 61] Connection refused)")

这是我的代码中引用数据库连接的部分:

app.py

if __name__ == '__main__':
  models.initialize()
  app.run(debug=DEBUG, port=PORT, host=HOST)

config.py

DATABASE = {
  'db': 'my_dbname',
  'host': '142.157.25.22',
  'port': 3306,
  'user': 'my_username',
  'passwd': 'my_pswd',
}

models.py

from peewee import *
import config

DATABASE = MySQLDatabase(config.DATABASE['db'], host=config.DATABASE['host'], port=config.DATABASE['port'], user=config.DATABASE['user'], passwd=config.DATABASE['passwd'])

...all of my models related code

def initialize():
  print 'starting db connection'
  DATABASE.connect()
  print 'connected'
  DATABASE.create_tables([Batch, Company, User, Post],safe=True)
  DATABASE.close()

我也尝试以主机身份连接到“localhost”,但这似乎在这里不起作用,我应该连接到其他主机吗?

【问题讨论】:

  • 错误表示连接被拒绝。您可以使用这些凭据从该计算机连接到该服务器吗?连接是否被路由器或防火墙阻止?端口是否对数据库开放?数据库设置的授权是否允许此连接?
  • 谁在托管服务器(isp 不是答案)
  • 一个小番茄正在托​​管服务器
  • 可以用mysql手动连接吗?例如mysql --host=...?
  • 同样的错误,使用空白数据库并且在运行示例时在 Python 提示符中形成文档。我可以通过mysql -u user -p ... 连接。本地主机上的 MySQL 服务器...

标签: python mysql flask peewee


【解决方案1】:

解决方案是默认端口错误: peewee doc 中的示例是

# Connect to a MySQL database on network.
mysql_db = MySQLDatabase('my_app', user='app', password='db_password',
                         host='10.1.0.8', port=3316)

但默认端口是 3306

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 2022-12-14
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多