2

我在 FreeBSD 7.3 上运行 MySQL 5.0.77。MySQL root 密码丢失,我想重置它。但我有以下问题。

--skip-grant-tables我停止了 MySQL 并使用以下选项重新开始:

/usr/local/etc/rc.d/mysqld start --skip-grant-tables

该服务启动,但是当我尝试在没有密码的情况下登录时:

 mysql -u root

我得到这个回应:

错误 1045 (28000): 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

我可以以其他用户(缺乏 SUPERUSER 权限)的身份登录,但不能以 root 身份登录。有人知道我在做什么错吗?

4

3 回答 3

1

这就是我的诀窍:

https://help.ubuntu.com/community/MysqlPasswordReset

于 2013-04-24T17:35:59.777 回答
0

我尝试sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"重新启动 mariadb 服务器,但仍然收到拒绝访问错误sudo mysql -u root

对我有用的是:

sudo systemctl stop mariadb
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
sudo mysql -u root

现在在 mysql 控制台中:

FLUSH PRIVILEGES;

当我这样做时出现错误:

SET PASSWORD FOR root@'localhost' = PASSWORD('password');

但这有效:

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

完成:

FLUSH PRIVILEGES;
exit

回到外壳:

sudo /etc/init.d/mysql stop

对我来说,我仍然可以使用连接,mysql -u root所以我以一种不好的方式停止了服务器:获取 PID(s)ps -aux | grep mysql并终止它们sudo kill -9 <pid>

一旦我们确定 mysql 服务器没有运行,请以正常方式重新启动:

sudo systemctl start mariadb

现在将再次需要密码,但我们知道 root 密码是什么。

在 final 之前,如果您尝试使用该方法systemctl start mariadb,可能希望安全运行。sudo systemctl set-environment MYSQLD_OPTS=""

于 2020-07-03T07:15:41.297 回答
0

我刚刚经历了一些类似的情况,经过一番挫折后,我意识到我的计算机上运行了 2 个 MySQL 安装,一个在我的操作系统中,一个在本地服务器包中。就我而言,这个烦人的情况刚刚解决了关闭我的操作系统的 SQL 服务

于 2018-02-08T06:23:03.560 回答