MySQL 1045异常

3 投票
1 回答
778 浏览
提问于 2025-04-17 07:32

我正在使用Django 1.3.1和Python 2.7.2,想在本地用nginx部署一个项目。

在执行第一个命令后,manage.py出现了一些问题。比如,第一个命令是:

$ python manage.py runfcgi host=127.0.0.1 port=7782  

这个命令执行得很正常。但是当我尝试执行之后的任何命令,比如syncdb或者其他命令(runservervalidaterunfcgi等等),我就会遇到一些奇怪的错误:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 88, in inner_run
    self.validate(display_num_errors=True)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 102, in get_validation_errors
    connection.validation.validate_field(e, opts, f)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/validation.py", line 14, in validate_field
    db_version = self.connection.get_server_version()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 338, in get_server_version
    self.cursor()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 250, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 322, in _cursor
    self.connection = Database.connect(**kwargs)
  File "/usr/lib/pymodules/python2.7/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

我不知道问题出在哪里。在settings.py文件中,所有的MySQL访问参数(userpassdbnamehost)都写得很正确(syncdb也成功了)。

注意:如果我把项目目录复制到“project2”并重新命名为原来的“project”,那么在我执行第一个manage.py命令时问题就消失了,但之后我又会看到那些错误。

我还有其他的Django项目以同样的方式部署,使用相同的Django和Python,但它们没有任何问题。

有没有人知道这个问题是什么?

1 个回答

0

你的另一个Django项目是在同一台服务器或电脑上吗?

如果是的话,检查一下你在输入数据库凭证时的逗号是否正确,并和正在运行的那个项目进行对比。

撰写回答