python - 如何连接到我的远程 SQL 服务器

标签 python linux server

我有一个从 DigitalOcean 租用的 Linux ubuntu 服务器,用于通过使用 Python 编码在 MySQL 中存储流式实时数据。

问题是我不是在linux服务器环境中编码,而是在我的本地计算机python(个人Windows 10(不是服务器))中编码。因此,在编码中,我需要连接到我的 Linux 服务器,以便向 Linux MySQL 服务器提供数据/从 Linux MySQL 服务器获取数据。

我知道我需要在 python 中使用 MySQLdb 库来做到这一点。我尝试在Python中使用这个MySQLdb连接到我的Linux服务器,但它无法连接到服务器。

另一个问题: 为了授予我连接到 mysql 服务器的其他 IP 地址,我应该在我的 IP 地址发生变化时执行此操作吗?例如,当我在家工作时,我需要授予我的家庭互联网ip,当我在其他地方工作时,我需要授予该ip地址吗?

无论如何,我尝试授予我连接到互联网的 IP 地址,但即使授予后我也无法访问 mysql 服务器。4

我应该做什么?

这是我使用的代码;

import MySQLdb


conn = MySQLdb.connect("000.000.000.0", "root", "password", "name of database")

“000.000.000.0”是我租用的服务器,它是一个linux服务器。 “root”是我的服务器用户名 “password”是服务器和mysql的密码。 然后是我要连接的数据库的名称。

c = conn.cursor()

c.execute("SELECT * FROM practice")

这里我只想看看我在数据库中创建的“练习”表中有什么内容。

rows = c.fetchall()

for eachRow in rows:
    print eachRow

我不知道出了什么问题。 为了授予我使用以下代码:

 GRANT ALL ON nwn.* TO new_username@'00.000.000.00' IDENTIFIED BY 'new_password';

IP地址00.000.000.000是星巴克的IP地址,我现在正在处理这个项目。我收到了这样的消息:

 Query OK, 0 rows affected, 1 warning (0.03 sec)

之后,我尝试在本地窗口 python 上连接 python。但它不起作用并收到此 python 错误:

OperationalError: (2003, "Can't connect to MySQL server on '000.000.000.0' (10061)")

这有什么问题吗?

最佳答案

类似的问题已经被问过here

  • 您可以从本地操作系统连接到远程数据库吗? mysql -u XXXX -h {IP} -p
  • 您是否已在数据库中授予您的客户权限? Digital Ocean如何做到这一点

  • 创建远程访问用户

  • 将表名上的选择、删除、插入、更新授予。* TO 'user'@'your_local_ip';

  • 刷新权限;

最好不要向远程用户(脚本)授予所有权限

您的本地 IP 应该是静态 IP,否则您必须始终更改 IP 或使用 dynDNS 之类的服务。

(编辑) 我刚刚设置了一个环境:

  • 如果您连接到不存在的地址或 mysql/mariadb 实例未运行,您会收到错误代码 2003。'

(2003,“无法连接到‘my_hostname’(61) 上的 MySQL 服务器”)

  • 如果您是本地主机,则未获得授权,您会收到错误 1130

(1130,“主机'213.213.213.213'不允许连接到此MariaDB服务器”)

要检查是否可以访问远程 SQL 服务器,请尝试

mysql -h 123.123.123.123 -u 用户名-p

在您的本地windwos计算机上,其中123.123.123.123是您的DigitalOcean服务器的IP地址。

要获取您的公共(public) IP 地址(星巴克之外),您可以访问类似 this 的网站

如果您确实使用 0.0.0.0 作为 ip: 服务配置中的0.0.0.0作为ip地址用于绑定(bind)服务以供外部访问。 0.0.0.0就像每个ip的 clown ,但不能用于远程访问服务器/服务。

关于python - 如何连接到我的远程 SQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37534186/

相关文章:

python - Django本地异步任务

c++ - 在 PPC 中创建线程时崩溃

node.js - 哪一款最适合聊天应用程序? Web 套接字或每 3 秒发送一次请求

ssl - 如何在 mosquitto (MQTT) 代理上设置 TLS?

python - 如何制作正确的设置文件?

python - 让安全的 Websockets 在 Tornado 上工作

python - 检索与嵌套字典中最小值对应的键

java - 如何将 java 堆栈跟踪的 bash 输出打印到 Linux 中的文件?

linux - _POSIX_* (limits.h) 与 _SC_* (sysconf)

php - 未捕获异常 'CacheException',消息为“缓存引擎 _cake_core_ 未正确配置