Python MySQL 连接器访问被拒绝错误

3 投票
1 回答
2095 浏览
提问于 2025-04-18 15:21

我已经看了所有可能的资料,但就是无法连接到我的mysql服务器。这里是我的代码,挺简单的。(我用xxx隐藏了所有私人信息,其他的都是我得到的原样。)

import mysql.connector

conn = mysql.connector.connect(user='xxxx',password='xxxxx',host='xxxx',db='xxx',port=3306)

登录信息肯定是正确的。我在mysql客户端试过,连接得很好。MySQL服务器托管在dreamhost上。我把数据库用户允许的IP设置成了通配符%.%.%.%,这样任何人都可以连接。我不知道还有什么可能出错。当我在python中尝试连接时,我得到了:

C:\Python33\python.exe D:/Dropbox/python/v2/test.py
Traceback (most recent call last):
  File "D:/Dropbox/python/v2/test.py", line 3, in <module>
    conn = mysql.connector.connect(user='xxx',password='xxx',host='xxx',db='xxx',port=3306)
  File "C:\Python33\lib\site-packages\mysql\connector\__init__.py", line 101, in connect
    return MySQLConnection(*args, **kwargs)
  File "C:\Python33\lib\site-packages\mysql\connector\connection.py", line 117, in __init__
    self.connect(**kwargs)
  File "C:\Python33\lib\site-packages\mysql\connector\connection.py", line 383, in connect
    self._open_connection()
  File "C:\Python33\lib\site-packages\mysql\connector\connection.py", line 350, in _open_connection
    self._ssl)
  File "C:\Python33\lib\site-packages\mysql\connector\connection.py", line 176, in _do_auth
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1044 (42000): Access denied for user 'xxx'@'%.%.%.%' to database 'xxx'

任何帮助都将不胜感激。

1 个回答

1

你需要给这个用户授予权限。可以这样做:

GRANT ALL PRIVILEGES ON *.* TO 'user2'@'localhost' IDENTIFIED BY PASSWORD 'xxxxx'

撰写回答