专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>mysql>

忘记MYSQL的ROOT口令的恢复方法

百度收藏 QQ搜藏

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来刷新权限表.

上一篇:MySQL从表中取出随机数据 下一篇:mysql下为用户设置密码

power by soyo123 2007-2008