【问题标题】:Django - MySQL: 1045 Access Denied for 'user'@'localhost'Django - MySQL:'user'@'localhost' 的 1045 访问被拒绝
【发布时间】:2018-04-26 19:39:39
【问题描述】:

我有一个使用 MySQL 数据库的 Django 应用程序。我创建了一个数据库foo,然后创建了一个新用户foo_user,将foo.* 上的所有权限授予foo_user,并刷新了权限。

我可以从命令行以foo_userSHOW GRANTS; 登录,这给了我这个:

+-----------------------------------------------------------+
| Grants for foo_user@localhost                             |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'foo_user'@'localhost'              |
| GRANT ALL PRIVILEGES ON `foo`.* TO 'foo_user'@'localhost' |
+-----------------------------------------------------------+

我可以使用这个 sn-p 从 Python 连接:

import MySQLdb

try:
    db = MySQLdb.connect('localhost', 'foo_user', 'verysecurepassword', 'foo')
    cursor = db.cursor()
    cursor.execute('SHOW GRANTS;')
    results = cursor.fetchall()

    for r in results:
        print(r)
except MySQLdb.Error as e:
    print(e)

这会按预期打印foo_user 的权限。

settings.py

db_pass = ''
db_pass_file = os.path.join(os.path.expanduser('~'), 'db.passwd')
with open(db_pass_file, 'r') as dbpf:
    db_pass = dbpf.read()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'foo',
        'USER': 'foo_user',
        'PASSWORD': db_pass,
        'HOST': 'localhost',
        'PORT': '3306',
    },
}

但是,当我尝试 makemigrations 时,我得到了

django.db.utils.OperationalError: (1045, "Access denied for user 'foo_user'@'localhost' (using password: YES)")

我遵循了我能找到的每个 SO 答案的建议。我已经删除了数据库和用户,然后多次重新创建它们。我找不到任何明显的错误,而且错误本身并没有太大帮助。我的问题是:如何从 MySQL 或 Django 中强制获取更多信息,以便找出问题所在?

ETA:python 3.5.2、Django 1.11.7、mysql Ver 14.14 Distrib 5.7.20,在 EC2 实例上运行

【问题讨论】:

    标签: mysql django python-3.x


    【解决方案1】:

    问题是从文件中读取的密码末尾有一个额外的换行符。

    解决办法是改变

    db_pass = dbpf.read()

    db_pass = dbpf.read().rstrip()

    【讨论】:

      猜你喜欢
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 2012-08-02
      • 2019-05-15
      • 1970-01-01
      • 2016-07-11
      • 2013-09-30
      相关资源
      最近更新 更多