![我的 MySQL root 用户没了,如何恢复?](https://linux22.com/image/559211/%E6%88%91%E7%9A%84%20MySQL%20root%20%E7%94%A8%E6%88%B7%E6%B2%A1%E4%BA%86%EF%BC%8C%E5%A6%82%E4%BD%95%E6%81%A2%E5%A4%8D%EF%BC%9F.png)
我试图移动 MySQL 表以便将它们放在另一个文件夹中,所以我弄乱了插件表或类似的东西,最后我重新安装了整个东西。
然后我sudo aptitude purge mysql-server
删除了 MySQL 数据rm -rf /var/lib/mysql/mysql
,并且还从我尝试移动表的其他目录中删除了数据。
重新安装后,我以为我可以使用登录,mysql -u root
但它说用户错误。我尝试使用旧密码,结果还是一样。然后我搜索了一种方法,以重置 root 密码。
所以我照做了mysqld_safe --skip-grant-tables
,然后我成功登录mysql -u root
,然后我尝试,UPDATE user SET Password=PASSWORD('new-password') where User='root';
但没有成功,0 rows affected
。然后我SELECT * FROM User
又试了,结果只是debian-sys-maint
,没有其他,没有 root 或任何其他用户。
任何一点帮助都将不胜感激=/
答案1
只需创建您需要的用户。root@localhost
默认情况下可能没有。
您可以随时通过mysql --defaults-file=/etc/mysql/debian.cnf
使用以下命令创建新的 root 用户:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'YOUR NEW PASSWORD' WITH GRANT OPTION
答案2
由于您仅删除了 /var/lib/mysql/mysql ,因此重新安装不会创建默认数据库,因为数据目录 (/var/lib/mysql) 仍然存在。重命名数据目录并再次尝试重新安装。设置好 root 帐户后,您可以从备份中恢复数据库。
-$