PyMySQL 连接到远程数据库

PyMySQL Connecting to a Remote Database

我正在学习 Python 并尝试通过教程连接到远程数据库。 我遇到的问题是我不确定用什么替换 localhost,我尝试了域、IP 地址等,但不断收到以下错误。

OperationalError: (2003, "Can't connect to MySQL server on 'remotehost name' (timed out)")

# Open database connection
db = pymysql.connect("localhost","username","password","dbname" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# Drop table if it already exist using execute() method.
cursor.execute("DROP TABLE IF EXISTS rsstracker")

# Create table as per requirement
sql = """CREATE TABLE rsstracker (
   article_title  varchar(255),
   article_url  varchar(1000),
   article_summary varchar(1000)
   summary )"""

cursor.execute(sql)

# disconnect from server
db.close()

您应该将 localhost 替换为服务器的 IP 地址或主机名。如果该服务器在您的 LAN 中,您将需要它的内部地址。如果它在您的网络之外,您将需要它的外部地址。

无论哪种方式,您都需要确保您正在使用的端口被正确转发,而不是 blocked/filtered 沿途被路由器/防火墙转发,包括在远程服务器的操作系统上/被远程服务器的操作系统转发。

这个问题在 superuser exchange 上可能更合适。