是的,这是堆栈溢出中常见的问题,但我的问题有点不同!
我在数字海洋上有一个服务器。操作系统:ubuntu 18.04
我试图用mysql在apache服务器上托管django项目。
我已经完成了第一部分,但问题是如何集成mysql。我已经安装了mysql和mysqlclient。我的mysql中有一个用户root,有密码。我已经创建了一个数据库并授予了以下权限。
GRANT ALL PRIVILEGES ON urp_test.* TO 'root'@'localhost' identified by 'password_for_root';
我配置了我的settings.py文件。以下是db部分:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'urp_test',
'USER': 'root',
'PASSWORD': 'password_for_the_db',
'HOST': 'localhost',
'PORT': '3306',
}
}
然后我做了一个 python manage.py makemigrations
, python manage.py migrate
, python manage.py createsuperuser
.
他们都被成功地执行了。因此,当我从管理模块登录时,我看到错误:
操作错误位于/admin/login/(1698,“拒绝用户'root'@'localhost'”的访问)
我试着删除数据库,做了几次同样的事情,但都遇到了同样的问题。
编辑:
如果我使用相同的用户和密码从终端登录,例如: mysql -u root -p
有了密码,我就可以访问数据库了。
正如我前面提到的, python manage.py createsuperuser
创建一个用户,我可以从数据库表中获取该用户。
问题是当我尝试从 admin
来自浏览器的部件,例如: W.X.Y.Z:80/admin/login
我犯了上面提到的错误。在这里 W.X.Y.Z
是我的digitalocean服务器的ip
所以,这肯定还是一个权限错误,不是吗?
如何解决此错误?
我还计划为我的普通用户开发一个注册模块。如果他们注册了,他们是否可以访问此权限?他们能访问数据库吗?
1条答案
按热度按时间czq61nw11#
开一家旅馆有一些麻烦
db
低于root
用户。你可以在这里看到细节我所做的:
在mysql中以root用户身份登录
mysql> mysql -u root -p
创建了新用户mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
mysql> FLUSH PRIVILEGES;mysql> exit
然后我以新用户身份登录mysql -u newuser -p
在新的password
我之前设置了创建此用户。然后我创造了
db
通过create database my_database_name