通过Python连接到远程MySQL

2024-04-29 00:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在远程服务器上安装了MySQL。我还通过SSH创建了一些数据库,其中包含一些表。

我创建了以下用户:

CREATE USER 'myname'@'localhost' IDENTIFIED BY 'mypassword';
CREATE USER 'remotMe'@'myIP' IDENTIFIED BY 'mypassword';

GRANT PRIVILEGES * . * TO 'myname'@'localhost';
GRANT PRIVILEGES * . * TO 'remoteMe'@'myIP';

现在,我想通过Python连接到这个MySQL服务器。我已经安装了PyMySQL。我正在尝试以下代码:

import pymysql
conn = pymysql.connect(host='ServerIP', port=3306, user='remoteMe', passwd='mypassword', db='myDB') 

但这给了我一个connection refused错误。我需要配置其他东西才能使此工作吗?


Tags: tolocalhostby远程createmysqlmypasswordpymysql
2条回答

MySQL很可能绑定到本地主机。假设您使用的是Linux机器:

在远程计算机上,编辑/etc/mysql/my.cnf

找到bind-address=127.0.0.1,将其编辑为bind-address=0.0.0.0,或者删除该行。

重启MySQL

阅读更多:http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind-address

connection refused错误消息实际表示无法打开TCP套接字。服务器拒绝连接。这与身份验证或用户权限无关,因为拒绝发生在涉及MySQL服务器之前的操作系统级别。可能的原因有:

  • MySQL服务器仅绑定到本地主机→将侦听地址设置为服务器的实际IP地址或MySQL.conf中的0.0.0.0
  • 中间有防火墙→重新配置/停用防火墙
  • 连接详细信息(服务器/端口)错误→请再次检查

相关问题 更多 >