我在远程服务器上安装了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
错误。我是否需要配置其他内容才能使其正常工作?
答案 0 :(得分:1)
connection refused
错误消息实际意味着无法打开TCP套接字。服务器拒绝连接。这与身份验证或用户权限无关,因为在涉及MySQL服务器之前拒绝在OS级别上发生。可能的原因是:
答案 1 :(得分:1)
可能是MySQL绑定到localhost。假设你使用的是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