别别人linux 的root密码错误,在密码重置LINUX后,用户“root”@“localhost”(使用密码:是)的访问被拒绝...

我在我的linux服务器上安装了一个MySQL,我忘记了它的密码,所以我去了,并使用我在网上find的方法来改变它。 我所做的是如下:

/etc/init.d/mysql stop mysqld_safe --skip-grant-tables & mysql --user root mysql SELECT * FROM user; // I checked if I could access the user table or not update user SET password = PASSWORD('new_pass') WHERE user = 'root'; flush privileges; exit

更新查询确实更改了密码,因为它显示了受影响的行数和查询OK等

然后我重新启动MySQL

/etc/init.d/mysql stop /etc/init.d/mysql start

现在,当我用新的密码loginmysql -u root -p new_pass

它仍然给我错误“错误1045(28000):访问拒绝用户'root'@'localhost'(使用密码:是)”

有什么我失踪了吗?

我能够通过执行这个语句来解决这个问题

sudo dpkg-reconfigure mysql-server-5.5

这将改变根密码。

您可以通过以下五个简单步骤恢复MySQL数据库服务器密码。 以下是您需要为每个步骤键入的命令(以root用户身份登录):

步骤1:停止mysql服务

/etc/init.d/mysql stop

输出:

Stopping MySQL database server: mysqld.

步骤#2:启动到MySQL服务器W / O密码:

mysqld_safe --skip-grant-tables &

输出:

[1] 5988 Starting mysqld daemon with databases from /var/lib/mysql mysqld_safe[6025]: started

步骤#3:使用mysql客户端连接到mysql服务器:

mysql -u root

输出:

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

第四步:设置新的MySQL root用户密码

mysql> use mysql; mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; mysql> flush privileges; mysql> quit

步骤#5:停止MySQL服务器:

/etc/init.d/mysql stop

输出:

Stopping MySQL database server: mysqld STOPPING server from pid file /var/run/mysqld/mysqld.pid mysqld_safe[6186]: ended [1]+ Done mysqld_safe --skip-grant-tables

步骤#6:启动MySQL服务器并测试它

/etc/init.d/mysql start mysql -u root -p

你必须重置密码! mac osx(测试和工作)和Ubuntu的步骤

停止MySQL

$ sudo /usr/local/mysql/support-files/mysql.server stop

以安全模式启动它:

$ sudo mysqld_safe --skip-grant-tables

(上面的行是整个命令)

这将是一个持续的命令,直到这个过程完成,打开另一个shell /终端窗口,登录没有密码:

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

启动MySQL

sudo /usr/local/mysql/support-files/mysql.server start

你的新密码是“密码”。

我有同样的问题。 你必须写mysql -u root -p

不是mysql或mysql -u root -p root_password

我遇到了同样的问题,@ prorAmmar开明了我,“ 仔细看看mysql数据库中的用户表 ”。

我的问题不是ssl_type ,而不是第一个字段: 主机 。 我改变了使用的价值

update user set Host='localhost' where User='root' and Host='%';

在mysqld_safe --skip-grant-tables模型中。

那么它运作良好。

您可能需要清除您的根帐户的plugin列。 在我全新安装的时候,所有的root用户帐户都在plugin列中设置了unix_socket 。 这是因为只有系统根可以通过套接字登录,所以root账户只能被锁定到root账户。

如果你update user set plugin='' where User='root';flush privileges; ,您现在应该可以从任何本地主机unix帐户(使用密码)登录到root帐户。

看到这个AskUbuntu的问题和答案的更多细节。

在mac os上,请按照以下步骤操作:

停止MySQL

$ sudo /usr/local/mysql/support-files/mysql.server stop以安全模式启动它:

$ sudo mysqld_safe –skip-grant-tables(上面一行是整个命令)

这将是一个持续的命令,直到这个过程完成,打开另一个shell /终端窗口,登录没有密码:

$ mysql -u root

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

sudo /usr/local/mysql/support-files/mysql.server启动你的新密码是'密码'。

在我的情况下:

/etc/init.d/mysql停止

mysqld_safe –skip-grant-tables&

(在新窗口中)

mysql -u root

mysql>使用mysql;

mysql> update user set authentication_string = password('password')where user ='root';

mysql>刷新权限;

mysql>退出

/etc/init.d/mysql重新启动

你可以试试这个解决方案:

要让MySQL询问密码,还需要指定-p选项:(尝试使用-p和密码之间的空格)

mysql -u root -p new_password

MySQLl访问被拒绝

在第二个链接有人评论了同样的问题。

其实我仔细看看mysql数据库中的用户表,结果发现有人在我之前编辑用户root的ssl_type字段到SSL。

我编辑该字段,并重新启动MySQL,它像一个魅力。

谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值