mysql表损坏恢复root口令

操作系统:WINDOWS 2003 SERVER 系统

数据库版本:mysql 5.1.33

提示:access denied for user ‘root’@’localhost’ using password yes/no

由于服务器非法关机了,导致mysql数据库的表有损坏,root登录不上。

1. 管理员登陆系统,停止 MySQL 服务或者结束 MySQL 进程。

2. 启动 WINDOWS 的命令行窗口(即通常的 DOS 窗口:运行cmd),切换到你的 “MySQL\bin” 目录下。
E:\MySQL\bin>mysqld –defaults-file=”e:\mysql\my.ini” –console –skip-grant-tab
les
120204 23:01:47 [Note] Plugin ‘InnoDB’ disabled by command line option
120204 23:01:47 [Note] mysqld: ready for connections.
Version: ‘5.1.33-community’  socket: ”  port: 3306  MySQL Community Server (GPL
)
120204 23:05:37 [Note] mysqld: Normal shutdown

120204 23:05:37 [Warning] Forcing shutdown of 2 plugins
120204 23:05:37 [Note] mysqld: Shutdown complete
3. 不关闭此命令行窗口,然后重新开打一个命令提示符的窗口(CMD)用空密码方式使用root用户登录 MySQL
E:\MySQL\bin>mysql -uroot mysql

然后,就是重新设置密码了!

mysql> UPDATE user SET Password=PASSWORD(‘root’) where USER=’root’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

4. 好了到此步,可以关闭第一个 DOS 窗口了(关闭服务)。重新启动 MySQL 服务。

5. 在剩下的第二个 DOS 窗口中,用新的 ROOT 密码连接 MySQL。

E:\MySQL\bin>mysql -u root -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.33-community MySQL Community Server (GPL)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> quit
Bye

到此root口令已经恢复成功,但是网站还是报错,用SQLyog Enterprise查看,发表少了三个表,但是创建表的时候又提示已经存在。没招了,暂时先把表删了再重新创建导入数据。

还有一报错:Table is marked as crashed and should be repaired

应该也是表损坏了引起的。