Mysql隔一段时间不访问,也许你会忘记访问密码,这时该怎么办,重装mysql吗?可以使用下面的方法恢复。
方法一:因为Mysql密码存储于数据库mysql中的user表中,所以我们只要用已知密码的user表拷贝过来覆盖就行了。
Linux下 在/var/lib/mysql/mysql/目录下有三个user表相关文件user.frm、user.MYD、user.MYI。它们分别表示:
user.frm //user表样式文件
user.MYD //user表数据文件
user.MYI //user表索引文件
为保险起见,我们先将这三个user表相关文件备份,
然后我们将知道密码的mysql库中user表的三个文件拷贝过来,这时我们可以用ls看到六个user表文件。
这时我们只要重启mysql服务就可以用已知的密码来访问Mysql数据库了。
重启的命令为:service mysql restart 或
/etc/init.d/mysql restart
现在我们可以用已知密码的来访问Mysql数据库了。
方法二:
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
root$kill `cat /mysql-data-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
2. 使用--skip-grant-tables 参数来启动 mysqld。
LINUX下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:\mysql\bin\mysqld --skip-grant-tables
3. 使用mysql -h hostname mysql命令登录到mysqld server ,用grant命令改变口令。你也可以这样做: mysqladmin -h hostname -u user password new password。
其实也可以用use mysql; update user set password =password(yourpass) where user=root 来做到。
4:载入权限表,可以使用mysqladmin flush-privileges来刷新权限表. |