【发布时间】:2014-02-28 23:02:15
【问题描述】:
我有一个在另外两台服务器上运行良好的 Django 应用程序。它使用 MySQL 作为数据库。
我在新服务器上为应用程序的新实例设置了用户,这样我就可以通过 mysql 命令行客户端成功连接到远程数据库。
但是,当我尝试运行 ./manage.py syncdb 时,它告诉我:
django.db.utils.OperationalError: (1045, "Access denied for user 'app_user'@'mynewserver.com' (using password: YES)")
我在网上看到的每个地方都告诉我要确保用户已在 mysql 中设置并有权访问新数据库,甚至可以运行 flush privileges;。我已经仔细检查了所有这些并多次这样做。这似乎不是问题。
有什么想法吗?
编辑
另外,我刚刚检查并从 python 命令行运行以下命令也可以正常工作:
conn = mysql.connect(host='mynewserver.com', user='app_user', passwd='secret', db='myapp').cursor(mysql.cursors.DictCursor)
编辑 2
我刚刚跑了./manage.py sql myapp > myapp.sql; ./manage.py dbshell < myapp.sql
一切正常,它创建了表格就好了。我假设这将使用与运行./manage.py syncdb 相同的权限和设置。 什么给了?!?
版本
- Python==2.7.6
- Django==1.6.1
编辑 3
我想我还应该补充一点,我使用的是 South==0.7.6。如果有帮助的话。
【问题讨论】:
-
检查 app_user 的权限确保它有读/写权限
-
也刚刚确认,我可以手动创建表、插入表,并使用与我尝试运行 syncdb 的用户相同的用户从这些表中选择内容。 syncdb 是唯一让我伤心的东西。
标签: python mysql django django-syncdb