通过Python MySqlDb连接MySQL(1045错误)

1 投票
3 回答
1967 浏览
提问于 2025-04-17 11:58

我在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 可能是这样做的。所以你需要检查一下你的权限设置。

撰写回答