我最近在我的(云)服务器上安装了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
文件,但没有看到任何相关内容。
我有什么遗漏的吗?如何重置密码并再次访问?
答案 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