2016-03-18 90 views
0

本地计算机环境:访问远程数据库失败, “(1045,访问被拒绝的用户......)”

  • 的CentOS 6.7
  • 蟒蛇2.7.10
  • 瓶,MySQLdb的0.2 0.0
  • 本地IP:112.25.76.72
  • 远程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环境是一样的。

,如果你能解决这个问题,请大家帮帮我。

+0

你在哪里运行第一个代码?从本地主机?可能test_user只能从本地主机logined用户。你应该检查你的数据库或用户的配置。代码是正确的。 “访问被拒绝的用户‘test_user'@'112.25.76.72’示机器,其中u运行第二个代码的IP(112.25.76.72) – qvpham

+0

是,无论是在本地计算机和IP代码运行的是” 112.75.76.72 “。我应该检查哪个配置文件? – MasterHuang

回答

0

您应该检查在数据库服务器的用户的配置。它将被存储在数据库mysql中。 你可以得到用户的列表中有:

SELECT user, host FROM mysql.user; 

你不应该删除用户test_user @本地。你可以尝试在你的数据库服务器上执行它

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; 
相关问题