我已经开始使用django了,在settings.py
中设置'DATABASES'后,这是'runserver'上的错误mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
我的settings.py部分代码:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'my_site', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'root', # 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.
}
}
我创建了'my_site'数据库,并以正确的方式设置了权限(root拥有所有权限)。 我用'phpmyadmin'完成了这个操作。
出了什么问题?
答案 0 :(得分:14)
在控制台中运行
mysql> grant all privileges on *.* to root@localhost identified by 'password' with grant option;
答案 1 :(得分:3)
经过两天的挣扎,我终于找到了什么错误。 为Django站点设置mysql数据库的整个步骤是 -
您的settings.py文件必须如下所示 -
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db', #Name of database you created
'USER': 'root', #Username of database you created
'PASSWORD':'', #Password of database you created
'HOST': '',
'PORT': '',
} }
注意: - 上面给出的密码和用户名是我的localhost,您已将其更改为您的。
在localhost中创建一个数据库,让它命名为 django_db (为此你可以使用lamp / wamp / Xampp或mysql命令提示符)
编辑文件 settings.py 并保存在DATABASES字段中打开数据库所需的密码,如下面代码所示。
打开终端。
如果您使用的是虚拟环境,请使用命令切换到它 - > workon env_name
- 醇>
现在 cd app_name 例如。 cd mysite
步骤3,4和5告诉我们如何访问应用程序中找到manage.py文件的文件夹。
6.检查您是否在正确的目录中运行命令 ls -l </ em> 。如果你找到manage.py文件,那么一切都是正确的
7.python manage.py migrate
如果你有任何错误,比如 - &#34;没有名为MySQLdb的模块&#34;在上面运行的命令中,您可以访问link
8.python manage.py syncdb
9.python manage.py runserver
10.您将被要求为您的Django管理员提供用户名和密码,并提供您想要打开Django管理站点的任何内容。
11.检查您在http://localhost/phpmyadmin的localhost中的数据库中是否有一些表。你现在好了。
答案 2 :(得分:2)
指令说要将
username
与SQL语句一起添加为:
GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON winestores.* TO username@127.0.0.1 IDENTIFIED by 'password';
以root身份执行此操作后,我退出并尝试使用新用户重新登录。我得到了ERROR 1045.我通过以root身份重新登录并再次重新发出SQL语句来修复它,除了
username@localhost
。有效!我不知道为什么?也许它是'127.0.0.1'和'localhost'的IP之间的区别???
答案 3 :(得分:1)
对于遇到此问题的任何人 - 请检查以确保数据库用户主机为localhost
。如果设置为%
,则无法正常工作,您需要添加localhost
或更改整体安全设置。
答案 4 :(得分:0)
您的数据库无法识别您的root用户和密码。如果您可以转到phpmyAdmin并尝试创建不同的用户和密码并分配给数据库,如果这不起作用,请尝试创建但使用create user控制台,并授予所有权限。
答案 5 :(得分:0)
当您的用户名或密码错误时会发生这种情况....因此,请再次输入用户名和密码。
答案 6 :(得分:-1)
仅供参考,如果您使用的是XAMPP,请直接进入localhost / phpmyad>特权以对此进行修改