"未知的MySQL服务器主机"在Python中使用Flask时

时间:2017-12-15 03:27:09

标签: python mysql flask

我正在尝试使用Flask运行Web应用程序。我的设备上有MySQL服务器,并已将其bind address更改为192.168.0.102

现在,在Python中我试图连接MySQLdb:

    conn = MySQLdb.connect("user='myuser', password='mypassword', host='192.168.0.102', database='usersdb'")

... Flask应用程序在192.168.0.102上运行

app.run(debug=True, host='192.168.0.102')

现在,我收到了这个错误:

OperationalError: (2005, "Unknown MySQL server host 'user='myuser', password='mypassword', host='192.168.0.102', database='usersdb'' (0)")

我不知道是不是因为MySQL没有在192.168.0.102上运行 或者如果它与Flask有问题。

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

试试这个:

在MySQLdb.connect中输入MySQL服务器所在的IP地址:

<dependency>
    <groupId>org.jboss.spec.javax.transaction</groupId>
    <artifactId>jboss-transaction-api_1.2_spec</artifactId>
    <version>2.0.0.Alpha1</version>
</dependency>

并使用地址conn = MySQLdb.connect(host="localhost", # MySQL host, usually localhost user="myuser", passwd="mypassword", db="usersdb")

192.168.0.102

答案 1 :(得分:0)

可悲的是,你试图将string无效host放到MySQLdb.connection,这不是函数所期望的正确的参数!您应该阅读更多文档或尝试使用帮助功能来深入理解此功能。什么是它的要求和预期的哪种类型的参数。

import MySQLdb
help(MySQLdb.connection)

你会看到一些类似下面的文档:

class connection(__builtin__.object)
 |  Returns a MYSQL connection object. Exclusive use of
 |  keyword parameters strongly recommended. Consult the
 |  MySQL C API documentation for more details.
 |  
 |  host
 |    string, host to connect
 |  
 |  user
 |    string, user to connect as
 |  
 |  passwd
 |    string, password to use
 |  
 |  db
 |    string, database to use
 |  
 |  port
 |    integer, TCP/IP port to connect to

检查运行在ip为192.168.0.102的机器上的mysql服务器,然后尝试通过python命令行交互连接你的mysql服务器:

import MySQLdb
conn = MySQLdb.connect(user='myuser', password='mypassword', host='192.168.0.102', database='usersdb')

它应该正常工作!

顺便说一句,你应该在你的机器所有的地址上运行烧瓶!喜欢:

   app.run(host='0.0.0.0', debug=True)