python manage.py syncdb错误

python manage.py syncdb错误,python,mysql,django,syncdb,Python,Mysql,Django,Syncdb,我正试图让我的第一个Django项目在Windows上运行,但收到一条错误消息,内容如下: File "c:\users\[username]\appdata\local\temp\easy_install-pazcre\MySQL_python-1.2.3-py2.7- win32.egg.tmp\MySQLdb\connections.py", line 187, in __init__ mysql_exceptions.OperationalError: (1045, "Ac

我正试图让我的第一个Django项目在Windows上运行,但收到一条错误消息,内容如下:

File "c:\users\[username]\appdata\local\temp\easy_install-pazcre\MySQL_python-1.2.3-py2.7-    win32.egg.tmp\MySQLdb\connections.py", line 187, in __init__     mysql_exceptions.OperationalError: (1045, "Access denied for user 'django_user'@'localhost'     (using password: YES)")
我从命令行创建了数据库,如下所示:

-- create the database
CREATE DATABASE GlobalXdb CHARACTER SET utf8;

-- create user
CREATE USER 'django_user'@'localhost' IDENTIFIED BY 'thepassword';

-- give user permissions to db 
GRANT ALL ON django.* TO 'django_user'@'localhost'
我的
settings.py
文件包含:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': 'GlobalXdb',                      # Or path to database file if using sqlite3.
    'USER': 'django_user',                      # Not used with sqlite3.
    'PASSWORD': 'thepassword',                  # Not used with sqlite3.
    'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
}
}


有人能解释一下我的错误吗?

错误消息说,
用户'django_user'@'localhost'的访问被拒绝。
,因此我猜测用户'django_user'不存在或者您键入的密码错误


另一个不太可能的建议是检查授予“django_用户”的权限。可能此用户没有创建表的权限。

错误消息显示用户'django_user'@'localhost'的访问被拒绝。,因此我猜测用户'django_user'不存在或者您键入的密码错误


另一个不太可能的建议是检查授予“django_用户”的权限。可能该用户没有创建表的权限。

您的数据库名为GlobalXdb,但在这一行中

#give user permissions to db 
GRANT ALL ON django.* TO 'django_user'@'localhost'
您向django_用户授予对名为django的数据库的权限


向正确的数据库授予权限GlobalXdb应该可以解决您的问题。

您的数据库名为GlobalXdb,但在这一行中

#give user permissions to db 
GRANT ALL ON django.* TO 'django_user'@'localhost'
您向django_用户授予对名为django的数据库的权限


为正确的数据库授予权限GlobalXdb应该可以解决您的问题。

这可以通过在settings.py中定义两个数据库配置文件来解决

默认值-django在运行时使用有限权限实现额外的安全性

sync-由syncdb使用,作为用户root,具有额外的创建权限

DATABASES = {
  'default': {
    'ENGINE':'django.db.backends.mysql',
    'NAME':'database_name',
    'USER':'runtime',
    'PASSWORD':'runtime_password',
    'HOST':'',
    'PORT':'',
  },
  'sync': {
    'ENGINE':'django.db.backends.mysql',
    'NAME':'database_name',
    'USER':'root',
    'PASSWORD':'',
    'HOST':'',
    'PORT':'',
  },
}
您还必须为MySQL中的默认运行时访问权限授予有限权限

GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'runtime'@'localhost' IDENTIFIED BY 'runtime_password';
最后,在运行syncdb时,请指定您的sync访问配置文件:

python manage.py syncdb --database=sync

这将为您提供运行时所需的安全性和在命令行上所需的访问权限。

这可以通过在settings.py中定义两个数据库配置文件来解决

默认值-django在运行时使用有限权限实现额外的安全性

sync-由syncdb使用,作为用户root,具有额外的创建权限

DATABASES = {
  'default': {
    'ENGINE':'django.db.backends.mysql',
    'NAME':'database_name',
    'USER':'runtime',
    'PASSWORD':'runtime_password',
    'HOST':'',
    'PORT':'',
  },
  'sync': {
    'ENGINE':'django.db.backends.mysql',
    'NAME':'database_name',
    'USER':'root',
    'PASSWORD':'',
    'HOST':'',
    'PORT':'',
  },
}
您还必须为MySQL中的默认运行时访问权限授予有限权限

GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'runtime'@'localhost' IDENTIFIED BY 'runtime_password';
最后,在运行syncdb时,请指定您的sync访问配置文件:

python manage.py syncdb --database=sync

这将为您提供运行时所需的安全性和在命令行上所需的访问权限。

Django允许您为一个数据库定义多个数据库访问权限。然后,可以指定运行syncd db时要使用的数据库访问权限。请参见下面的回答…Django允许您为一个数据库定义多个数据库访问权限。然后,可以指定运行syncd db时要使用的数据库访问权限。请看下面的答案。。。。