operationalerror位于/admin/login/(1698,“拒绝访问用户‘root’@‘localhost’”)

izj3ouym  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(472)

是的,这是堆栈溢出中常见的问题,但我的问题有点不同!
我在数字海洋上有一个服务器。操作系统: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
所以,这肯定还是一个权限错误,不是吗?
如何解决此错误?
我还计划为我的普通用户开发一个注册模块。如果他们注册了,他们是否可以访问此权限?他们能访问数据库吗?

jv2fixgn

jv2fixgn1#

开一家旅馆有一些麻烦 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

相关问题