MySQL ERROR 1045(28000):用户'root'@'localhost'拒绝访问

时间:2017-10-17 14:17:25

标签: mysql root access

通过'root'用户连接到mysql时,我收到了上述错误。 命令尝试:

HashMap

我尝试将root凭据放在“/etc/my.cnf”文件中,但没有运气。

请帮忙。

4 个答案:

答案 0 :(得分:0)

您必须重置您的mysql root密码

请按照以下说明操作:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

答案 1 :(得分:0)

恕我直言,你没有清楚地描述你的情况。你的mysql是新安装,重新安装还是升级?或者您在root用户上执行的任何操作?  你的mysql版本是什么? ...

实际上,有很多类似于你的案例的问题,让你厌倦了他们的解决方案吗?

答案 2 :(得分:0)

首先:您不想将您的凭据放在/etc/my.cnf中,而是放在~/.my.cnf中(请注意前导点)。 .my.cnf的内容应如下所示

[client]
user=USERNAME
pass=PASSWORD

如果您的密码正确无误,您只能使用mysql登录,而无需任何选项。

如果这不起作用且您无法使用

登录
mysql -u root -pMYPASS

(请注意-p与实际密码之间缺少的空格),然后您可能需要重置密码。

答案 3 :(得分:0)

注意:此答案的全部功劳归于Netaji,您可以找到他的答案Here

我的问题通过以下方式解决了。

当我在命令下方输入时,我会得到一个错误。 sudo mysql -u root -p

Enter password:   
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES).

要解决此问题,请执行以下步骤。

  1. 输入命令

    sudo mysqld_safe --skip-grant-tables&[4] 21878

然后发生以下错误。

2018-12-17T06:43:33.106111Z mysqld_safe Logging to syslog.
2018-12-17T06:43:33.108971Z mysqld_safe Logging to '/var/log/mysql/error.log'.
/usr/bin/mysqld_safe: 152: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
2018-12-17T06:43:33.111388Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
/usr/bin/mysqld_safe: 152: /usr/bin/mysqld_safe: cannot create /var/log/mysql//error.log: Permission denied
^C
[4]   Exit 1                  mysqld_safe --skip-grant-tables

要解决此错误,请遵循以下几行。

i) systemctl stop mysql

2018-12-17T06:48:42.971692Z mysqld_safe Logging to syslog.
2018-12-17T06:48:42.974451Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2018-12-17T06:48:42.976653Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

ii) sudo mkdir -p /var/run/mysqld

iii) sudo chown mysql:mysql /var/run/mysqld

iv)sudo mysqld_safe --skip-grant-tables &

[5] 24203

2018-12-17T06:50:39.135292Z mysqld_safe Logging to syslog.
2018-12-17T06:50:39.137938Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2018-12-17T06:50:39.152966Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

v) Then connect mysql -u root.

然后将出现MySQL提示。然后设置好密码。

vi) FLUSH PRIVILEGES;

ALTER USER'root'@'localhost'由'new_password'标识;

vi) systemctl stop mysql

vi)按照以下方式进行那次冲突之后。

   `mysql -u root -p`