在mysql中重新启用root访问权限

时间:2015-03-28 01:18:52

标签: mysql root-access

我最近在我的(云)服务器上安装了mysql,然后运行sudo /usr/bin/mysql_secure_installation并禁止远程root登录。然后我创建了另一个用户来运行我的所有查询并给它适当的权限。我现在无法记住密码(或密码以某种方式被更改)并且无法连接到mysql。每当我尝试使用mysql -u user -p进行连接时,都会出现以下错误

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

我试着在这里提出关于其他问题的答案,但是大多数都需要访问mysql shell。

我也尝试过使用重新配置 sudo dpkg-reconfigure mysql-server-5.5(我的版本号是5.5.41)。

使用此功能,我可以设置root密码,但仍然无法连接。我也试过在安全模式下运行mysql,正如一些用户所建议的那样,没有运气。

我能想到的最后一件事是以某种方式重新授予root的远程访问权限,因为我可以重置它的密码,然后通过mysql shell重置user密码。所以,我尝试查看/etc/mysql/my.cnf文件,但没有看到任何相关内容。

我有什么遗漏的吗?如何重置密码并再次访问?

1 个答案:

答案 0 :(得分:2)

停止MySQL服务

#/etc/init.d/mysql stop

使用--skip-grant-tables执行MySQL服务器

#mysqld -u mysql --skip-grant-tables &

以root身份执行mysql客户端

#mysql -u root

更新密码

mysql> update mysql.user set password=password('newpassword') where user='anotheruser';

重新加载权限

mysql> flush privileges;

杀死mysqld

#killall mysql

启动mysql守护程序

#/etc/init.d/mysql start