我最近编写了一个程序,用于将我的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()
答案 0 :(得分:1)
host = 'server169.web-hosting.com',
我认为这是一个真正的主持人?默认情况下,MySQL(您使用的数据库)在localhost传入连接以外的任何其他设备上都是禁用的:您无法从"外部"连接到数据库。服务器。
您的PHP脚本有效,因为它在服务器上运行,因此可以在本地连接到数据库。
解决这个问题的三种方法:
raspberrypi:3306
到server169.web-hosting.com
server169.web-hosting.com:3306
(您需要root权限才能执行此操作,+更改防火墙规则)HTTP POST
请求和JSON对象从RaspberryPi调用的php脚本一样。)最后一个可能是最适合您的方式,因为您不必在服务器上进行过深的配置/需要特殊访问。