访问远程数据库失败,“(1045,拒绝用户访问......)”

时间:2016-03-18 09:38:09

标签: python database mysql-python

本地机器环境:

  • centos 6.7
  • python 2.7.10
  • Flask-MySQLdb 0.2.0
  • local ip:112.25.76.72
  • remote ip:221.228.203.203

两个代码都在本地机器上运行;

当我在本地python命令行环境中访问远程数据库时,如下所示:

>>>import MySQLdb
>>>conn = MySQLdb.connect(host="221.228.203.203",user="test_user",passwd="test_passwd",db="test_db",charset="utf-8")

它成功访问,但是当我将这些代码写入python脚本login.py:

import MySQLdb

conn = None

try:
    conn = MySQLdb.connect(host="221.228.203.203",user="test_user",passwd="test_passwd",db="test_db",charset="utf-8")
    cur = conn.cursor()

except Exception,e:
    print e

finally:
    if conn:
        conn.close()

然后在终端中执行“python login.py”,它访问失败,错误信息为:

(1045, "Access denied for user 'test_user'@'112.25.76.72' (using password: YES)")

为什么呢?他们的python环境是一样的。

如果你能解决,请帮助我。

1 个答案:

答案 0 :(得分:0)

您应该检查数据库服务器中用户的配置。它将存储在数据库mysql中。 您可以通过以下方式获取用户列表:

SELECT user, host FROM mysql.user;

您不应删除用户test_user @ localhost。您可以尝试在数据库服务器上执行它

CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_passwd'
GRANT ALL PRIVILEGES ON *.* TO 'test_user'@'%'  WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'test_user'@'localhost'  WITH GRANT OPTION;
相关问题