如何使用 Raspberry Pi 连接到 Python 中的 MySQL 数据库

How do I connect to a MySQL Database in Python with a RaspberryPi

我是一名学生,我正在尝试将一些传感器值写入 MySQL 数据库。

作为 IDE 我将使用 Inteliji。 首先,我从安装数据库插件开始。

接下来尝试连接数据库(见下图)

Figure of successful connection

现在我接下来要做的是使用 MySQL 连接器。 因此,我在 r-PI 上安装了 MySQL 并使用以下代码来实现它。

import mysql.connector
print("Step 1")
cnx = mysql.connector.connect(user='a21ib2a01', 
                              password='secret',
                              host='mysql.studev.groept.be',
                              database='a21ib2a01')
Print("Step 2")

现在我 运行 我的代码终端将输出:

Step1

出于某种原因我不知道; connect 函数总是使我的程序超时并出现下一个错误:

mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'mysql.studev.groept.be:3306' (110 Connection timed out)

请问有谁知道为什么我连接成功了却连接不上? 长话短说,我做错了什么,我该如何解决?

提前致谢!

您的超时意味着您的 rPi 上的网络无法到达 -- 找不到通往您的 MySQL 主机 mysql.studev.groept.be.

的路由

如果您在 rPi 的 shell 中执行 traceroute mysql.studev.groept.be,您可能会发现问题所在。

当在你的 rPi 上 shell 时,你可以通过 ssh 连接到你 uni 网络中的任何机器吗?如果是这样,您也许可以使用 ssh port-forwarding 获取到数据库服务器的路由。

您 运行 是直接在 rPi 上还是在笔记本电脑上使用 intelliJ?如果你 运行 它在笔记本电脑上,看起来笔记本电脑可以找到到你的服务器的路由,但 rPi 不能。

(如果这是我的项目,我会在我的笔记本电脑上安装一个 MySQL 服务器,以减少通过涉及 VPN 的多跳连接的 network-engineering 麻烦。)