我有一个在另外两台服务器上运行良好的 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
一切正常,它创建了表格就好了。我假设这将使用与 running 相同的权限和设置./manage.py syncdb
。是什么赋予了?!?
版本
- 蟒蛇==2.7.6
- Django==1.6.1
编辑 3
我想我还应该补充一点,我使用的是 South==0.7.6。如果这有帮助。