7

我正在尝试通过 python 脚本连接到 mysqldb。我已将 my.cnf 中的绑定地址更改为“192.168.56.101”,这是我的服务器 IP。

import MySQLdb

db = MySQLdb.connect(host='192.168.56.101',
                     user='root',
                     passwd='pass',
                     db='python')

上面的代码给了我以下错误。

_mysql_exceptions.OperationalError: (1130, "Host '192.168.56.1' is not allowed to connect to this MySQL server")

它把我的 ip '192.168.56.101' 当作 '192.168.56.1'?我也试过这个:

mysql -u nilani -p pass -h 192.168.56.101

它也给出了同样的错误,

ERROR 1130 (HY000): Host '192.168.56.1' is not allowed to connect to this MySQL serve

为什么它无法正确识别我的ip?

4

1 回答 1

6

这是服务器端缺少权限。

MySQL 不允许 root 用户从网络上的其他机器进行连接。该IP192.168.56.1可能是您自己机器的IP。

为了创建一个可以从其他机器登录的用户,请参考这个问题:Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server

它涉及为服务器上的本地主机和远程主机访问创建单独的用户(取自链接问题):

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
于 2013-07-19T17:25:44.573 回答