繁体   English   中英

Django,MySQL,syncdb:拒绝有效用户访问

[英]Django, MySQL, syncdb: Access Denied to valid user

我有一个在其他两台服务器上都可以正常运行的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 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。 如果有帮助。

我确实遗漏了一些我认为不相关但完全相关的东西。

该应用程序定义了多个数据库。 Syncdb一次只能在一个数据库上运行,并且默认情况下将使用默认数据库运行,如下所示: https : //docs.djangoproject.com/en/1.6/topics/db/multi-db/#synchronizing-your -databases

但是,当我的用户对另一个数据库没有权限时,syncdb将失败。 它没有指出它试图访问哪个数据库。

在确保用户对所有数据库都具有权限之前,从django-extensions运行./manage.py reset_db效果也很好。

然后,我假设syncdb中存在错误。 在进一步研究之后,我可能不得不向Django报告一个错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM