MySQL错误:#1045 -用户“root”@“localhost”的访问被拒绝(使用密码:是)

lx0bsm1f  于 2022-11-21  发布在  Mysql
关注(0)|答案(7)|浏览(279)

我已经尝试了我找到的所有修复方法,但我无法更改我的根MySQL密码。
用户“root”@“localhost”的访问被拒绝(使用密码:否)
当我进入PHP MyAdmin时,我得到这个:

1045 -用户“root”@“localhost”的访问被拒绝(使用密码:是)

这一切都是从我被迫输入MySQL的新密码开始的。我不知道如何修复这个问题,我很绝望。

  • 谢谢-谢谢
wxclj1h5

wxclj1h51#

通用MYSQL信息

首先,请阅读mysql手册:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
这些步骤将向您展示如何关闭服务,然后使用不需要密码的覆盖命令启动服务,然后重置密码。
停止MySQL服务器,然后使用--skip-grant-tables选项重新启动它。这使任何人都可以在没有密码的情况下使用所有权限进行连接,并禁用帐户管理语句(如ALTER USERSET PASSWORD)。由于这是不安全的,因此您可能需要将--skip-grant-tables--skip-networking结合使用以阻止远程客户端进行连接。
使用mysql客户端连接到MySQL服务器;不需要密码,因为服务器是以--skip-grant-tables
shell> mysql
在mysql客户端中,告诉服务器重新加载授权表,以便帐户管理语句能够工作:
mysql> FLUSH PRIVILEGES;
然后更改'root'@'localhost'帐户密码。将该密码替换为要使用的密码。要更改具有不同主机名部分的root帐户的密码,请修改说明以使用该主机名。
MySQL 5.7.6及更高版本:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5及更早版本:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
或者直接在用户表上:
UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';

XAMPP特定

停止MySQL服务。打开命令窗口。更改到XAMPP MySQL目录:
> cd \xampp\mysql\bin\
运行不带安全性的服务(请注意,您运行的是mysqld,而不是mysql):
> mysqld.exe --skip-grant-tables
MySQL服务将在此窗口中运行,因此请打开另一个命令窗口并切换到XAMPP MySQL目录:
> cd \xampp\mysql\bin\
运行MySQL客户端:
x1米15英寸
更新密码:
mysql> UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
退出MySQL:
mysql> \q
使用任务管理器取消仍在运行的mysqld.exe。重新启动mysql服务。

pepwfjgg

pepwfjgg2#

我的问题用下面的方法解决了。
当我输入下面的命令,然后我会得到一个错误.sudo mysql -u root -p

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

要解决此问题,请执行以下步骤输入命令,

sudo mysqld_safe --skip-grant-tables &

然后发生以下错误。

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

若要解决此错误,请遵循下列行。

  1. 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.
  1. sudo mkdir -p /var/run/mysqld
  2. sudo chown mysql:mysql /var/run/mysqld
  3. sudo mysqld_safe --skip-grant-tables &
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

1.然后连接mysql -u root。然后MySQL提示符将出现。然后设置您的密码后。
1.冲洗特权;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  1. systemctl stop mysql
    1.之后,按下面的方式进行操作。
xvw2m8pv

xvw2m8pv3#

我遇到了同样的问题#1045错误,即使我从我的shell作为root登录.然后我按照下面的过程,它为我工作-

请注意,此方法仅适用于Linux 20.04用户
**步骤1:**键入命令shell sudo nano /etc/mysql/debian.cnf---〉这将打开mysql数据库配置文件并且只看到该文件。不需要更改。在文件中找到以下行

[client] 
host     = localhost 
user     = debian-sys-maint  --->Copy this user name
password = QiExXKUgZHc4Mnui  --->Copy this password 
socket   = /var/run/mysqld/mysqld.sock 
[mysql_upgrade] 
host     = localhost 
user     = debian-sys-maint 
password = QiExXKUgZHc4Mnui 
socket   = /var/run/mysqld/mysqld.sock

**步骤2:**返回到用户提示符并键入以下内容-

`sudo -i` ----->This will change to user to root
`mysql -u debian-sys-maint -p` ----This will prompt for MySql editor

粘贴先前复制的密码,然后键入

`FLUSH PRIVILEGES;` ----->This will grant all privileges to debian-sys-maint

然后在mysql编辑器中输入以下命令更改“root”用户密码

`ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';`  --->this will change your password

现在你的'root'用户名和密码已经准备好登录phpmyadmin了。

pkbketx9

pkbketx94#

First Run CMD mode 
E:\xampp\mysql\bin>mysql.exe -u root -p

Screenshot:

xfb7svmp

xfb7svmp5#

我最近遇到了同样的问题。最新版本的PHPmyadmin不允许你以root身份登录。我遇到了其他问题,因为在Ubuntu 18上安装时由安装脚本定义的用户名和密码没有被授予任何权限。我通过在终端上以root身份登录mysql来解决这个问题。然后我从命令行添加了一个新用户。此时,我可以在PHP中以新用户身份登录,我的管理员和新用户具有我授予的权限。

k5ifujac

k5ifujac6#

对于Windows用户:在开始恢复密码之前,请在命令行中尝试:

mysql -uroot -pyourpassword

如下图所示:
Print of my MySQL login
我没有时间解释原因,但是如果你想知道更多,请检查你计算机中的“MySQL X.X命令行客户端”快捷方式是如何工作的。
及时确保mysql路径在PATH变量中。

  • 我的计算机 * 正在使用下面显示的这些路径。您的计算机可能正在使用其他路径。C:\ProgramData\MySQL\MySQL Server 8.0 C:\Program Files\MySQL\MySQL Server 8.0\bin
k97glaaz

k97glaaz7#

以下内容对我很有效:我正在运行一个Springboot应用程序,我可以通过命令行mysql -u root -p创建表,但是一旦我运行了应用程序,表就没有创建(我没有设置数据库的密码),所以application.properties在项目的www.example.com中,您必须确保该行不存在,或者如果您希望使用与以下行匹配的密码spring.datasource.password=pssw

相关问题