我的MySQL root用户不见了,我该如何恢复?

我试图移动MySQL表,所以他们在另一个文件夹,所以我搞砸了插件表或类似的东西,我结束了重新安装整个事情。

我做了sudo aptitude purge mysql-server然后我删除了MySQL数据rm -rf /var/lib/mysql/mysql ,同时我从另外一个目录中删除了我试图移动表的数据。

重新安装后,我认为我将能够使用mysql -u rootlogin,但它表示用户是错误的。 我试着用旧的密码和相同的东西。 然后我search了一个重置​​root密码的方法。

所以我做了mysqld_safe --skip-grant-tables然后我loginmysql -u root成功,然后我尝试UPDATE user SET Password=PASSWORD('new-password') where User='root'; 没有运气, 0 rows affected 。 然后,我做了SELECT * FROM User ,我得到的只是debian-sys-maint ,没有其他的,没有根或任何其他用户。

任何一点帮助将不胜感激= /

只需创build你需要的用户。 默认情况下可能没有root@localhost

你总是可以通过mysql --defaults-file=/etc/mysql/debian.cnf连接mysql --defaults-file=/etc/mysql/debian.cnf

创build新的root用户: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'YOUR NEW PASSWORD' WITH GRANT OPTION

由于只删除了/ var / lib / mysql / mysql,因为数据目录(/ var / lib / mysql)仍然存在,所以重新安装不会创build默认的dbs。 重命名数据目录并再次尝试重新安装。 使用root帐户设置后,您可以从备份中恢复数据库。

– $