MySQL: django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'") 使用正确的用户名和密码

cod*_*321 5 python mysql django django-settings python-3.x

django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'")用mysql的时候有。用户名和密码正确:

DB_HOST = '127.0.0.1'
DB_USER = 'root'
DB_PASSWORD = ''
Run Code Online (Sandbox Code Playgroud)

我可以以root身份登录mysql:

$ sudo mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Run Code Online (Sandbox Code Playgroud)

但不是cchilders

$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)

这可能会导致问题。上次我安装mysql时没有发生这种情况,所以对我来说没有意义。我的客户很好:

$ pip3 freeze
Django==1.10.5
mysqlclient==1.3.9
Run Code Online (Sandbox Code Playgroud)

如何让我的普通用户运行 mysql,以便我可以在终端中运行 django?谢谢你

脏的解决办法:

没有任何修复,总是运行 mysql 作为 sudo

2ps*_*2ps 10

您可以root在您的服务器上登录的原因是您可能在.my.cnf文件中指定了密码/root(即root用户的主目录)。检查那里是否有密码并将其用于cchilders。然后,您可以创建一个特定于 django 的应用程序用户,以确保 django 应用程序只能读/写/等。到它需要访问而不是通过rootmysql 用户访问的数据库。

create user 'django'@'localhost' identified by 'django-user-password';
grant usage on *.* to 'django'@'localhost';
grant all privileges on django-database-1.* to 'django'@'localhost';
Run Code Online (Sandbox Code Playgroud)