MySQLdb在尝试将Raspberry Pi天气数据上传到SQL数据库时无法正常工作

时间:2017-04-22 17:29:01

标签: python mysql sql

我最近编写了一个程序,用于将我的Raspberry Pi气象站的数据通过Python上传到PHPMyAdmin数据库。然后我的网站将使用PHP读取数据库中的数据。我有代码的PHP部分工作(将从数据库中读取数据),但我的问题是我的程序的Python部分。我正在使用Python的 MySQLdb 插件。但是,当我尝试使用与PHP相同的细节进行连接时,它似乎确实建立为连接,因为没有错误,但是其余的代码都没有运行。

我将如何解决这个问题?

这是我的代码:

import MySQLdb

db = MySQLdb.connect(
    host = 'server169.web-hosting.com', 
    user = '***********', 
    passwd = '**************', 
    db = '************', 
    port = 3306 # should be same as in /etc/mysql/my.cnf on server.
)

cursor = db.cursor()

cursor.execute('SELECT VERSION()')

data = cursor.fetchone()

print str(data)

database.close()

1 个答案:

答案 0 :(得分:1)

host = 'server169.web-hosting.com',

我认为这是一个真正的主持人?默认情况下,MySQL(您使用的数据库)在localhost传入连接以外的任何其他设备上都是禁用的:您无法从"外部"连接到数据库。服务器。

您的PHP脚本有效,因为它在服务器上运行,因此可以在本地连接到数据库。

解决这个问题的三种方法:

  • 使用SSH隧道连接到您的服务器raspberrypi:3306server169.web-hosting.com
  • 允许mysql监听server169.web-hosting.com:3306(您需要root权限才能执行此操作,+更改防火墙规则)
  • 使用服务器上的接口为您添加数据(就像您使用HTTP POST请求和JSON对象从RaspberryPi调用的php脚本一样。)

最后一个可能是最适合您的方式,因为您不必在服务器上进行过深的配置/需要特殊访问。