MySQLdb错误1130:无法获取服务器的正确IP

Nil*_*age 5 python mysql mysql-python

我正在尝试通过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')
Run Code Online (Sandbox Code Playgroud)

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

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

它已将我的IP地址“ 192.168.56.101”作为“ 192.168.56.1”?我也试过这个:

mysql -u nilani -p pass -h 192.168.56.101
Run Code Online (Sandbox Code Playgroud)

它也会产生同样的错误,

ERROR 1130 (HY000): Host '192.168.56.1' is not allowed to connect to this MySQL serve
Run Code Online (Sandbox Code Playgroud)

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

pao*_*eno 5

这是服务器端权限不足。

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;
Run Code Online (Sandbox Code Playgroud)