通过Python MySqlDb连接MySQL(1045错误)
我在OSX Lion上使用Python 2.7,想连接一个远程的SQL数据库,但遇到了问题。出现了以下错误:
Traceback (most recent call last):
File "connectDB.py", line 39, in <module>
main()
File "connectDB.py", line 16, in main
db = MySQLdb.connect(HOST, USER, PASSWORD, DBNAME )
File "build/bdist.macosx-10.7-intel/egg/MySQLdb/__init__.py", line 81, in Connect
File "build/bdist.macosx-10.7-intel/egg/MySQLdb/connections.py", line 187, in __init__
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'ekogan'@'dyn-209-2-217-168.dyn.columbia.edu' (using password: YES)")
我知道我的主机地址和用户名/密码是正确的,因为我可以通过PHP访问这个数据库。但是不知道为什么在这里却被拒绝了。是不是因为SQL版本不兼容的问题?我完全不知道该怎么解决。
3 个回答
1
grant select,update,delete,insert on DBNAME.* to 'ekogan'@'dyn-209-2-217-168.dyn.columbia.edu' identified by 'PASSWORD';
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。
1
如果你有权限查看 mysql.user
表,打开终端并输入以下内容:
% mysql -u ekogan -p mysql
mysql> select user, host, password from user where password = password(PASSWORD);
在上面的内容中,把 PASSWORD
改成你的密码,记得用引号括起来,比如如果你的密码是 foobar
,就把 PASSWORD
改成 "foobar"
)。用户、主机和密码必须和 mysql.user
表中的一条记录相匹配。
2
PHP 可能没有把你的 MySQL 服务器当作一个 远程 主机来访问,而 Python 可能是这样做的。所以你需要检查一下你的权限设置。