mysql忘记root密码:破解mysql  root密码的几种思路方法来源: 发布时间:星期六, 2009年9月12日 浏览:45次 评论:0
文章来自:网络
网上流传几种破解mysql root密码几种思路方法: 思路方法 使用phpmyadmin这是最简单了修改mysql库user表不过别忘了使用PASSWORD 思路方法 2 使用mysqladmin这是前面声明个特例 mysqladmin -u root -p password mypasswd 输入这个命令后需要输入root原密码然后root密码将改为mypasswd 把命令里root改为你用户名你就可以改你自己密码了 当然如果你mysqladmin连接不上mysql server或者你没有办法执行mysqladmin那么这种思路方法就是无效而且mysqladmin无法把密码清空 下面思路方法都在mysql提示符下使用且必须有mysqlroot权限: 思路方法 3 mysql> Insert INTO mysql.user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES 确切地说这是在增加个用户用户名为jeffrey密码为biscuit 在mysql中文参考手册里有这个例子所以我也就写出来了 注意要使用PASSWORD然后还要使用FLUSH PRIVILEGES 思路方法 4 和思路方法 3样只是使用了REPLACE语句 mysql> REPLACE INTO mysql.user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES 思路方法 5 使用SET PASSWORD语句 mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 拟也必须使用PASSWORD但是不需要使用FLUSH PRIVILEGES 思路方法 6 使用GRANT ... IDENTIFIED BY语句 mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit'; 这里PASSWORD是不必要也不需要使用FLUSH PRIVILEGES 注意: PASSWORD [不是]以在Unix口令加密同样思路方法施行口令加密 MySQL 忘记口令解决办法 如果 MySQL 正在运行首先杀的: killall -TERM mysqld 启动 MySQL :bin/safe_mysqld --skip-grant-tables & 就可以不需要密码就进入 MySQL 了 然后就是 >use mysql >update user password=password("_pass") where user="root"; >flush privileges; 重新杀 MySQL 用正常思路方法启动 MySQL mysql密码清空 Windows: 1.用系统管理员登陆系统 2.停止MySQL服务 3.进入命令窗口然后进入MySQL安装目录比如我安装目录是c:\mysql,进入C:\mysql\bin 4.跳过权限检查启动MySQL c:\mysql\bin>mysqld-nt --skip-grant-tables 5.重新打开个窗口进入c:\mysql\bin目录设置root新密码 c:\mysql\bin>mysqladmin -u root flush-privileges password "password" c:\mysql\bin>mysqladmin -u root -p shutdown 将password替换为你要用root密码第 2个命令会提示你输入新密码重复第个命令输入密码 6.停止MySQL Server用正常模式启动Mysql 7.你可以用新密码链接到Mysql了 Unix&Linux: 1.用root或者运行mysqld用户登录系统; 2.利用kill命令结束掉mysqld进程; 3.使用--skip-grant-tables参数启动MySQL Server shell>mysqld_safe --skip-grant-tables & 4.为root@localhost设置新密码 shell>mysqladmin -u root flush-privileges password "password" 5.重启MySQL Server mysql修改密码 mysql修改可在mysql命令行执行如下: mysql -u root mysql mysql> Update user SET password=PASSWORD(" password") Where user='name'; mysql> FLUSH PRIVILEGES; mysql> QUIT 教你如何将MySQL数据库密码恢复 MySQL密码存储于数据库mysql中user表中所以只需要将我windows 2003下MySQL中user表拷贝过来覆盖掉就行了 在c:\mysql\data\mysql\(linux 则般在/var/lib/mysql/mysql/)目录下有 3个user表相关文件user.frm、user.MYD、user.MYI user.frm //user表样式文件 user.MYD //user表数据文件 user.MYI //user表索引文件 为保险起见 3个都拷贝过来不过其实如果的前在要恢复那个MySQL上没有更改过表结构话只要拷贝user.MYD就行了 然后 #. /etc/rc.d/init.d/mysql stop #. /etc/rc.d/init.d/mysql start #mysql -u root -p XXXXXX 好了可以用windows 2003下mysql密码登陆了 mysql>use mysql mysql>update user Password=PASSWORD('xxxxxx') where User='root'; 这时候会出错提示user表只有读权限 我分析了下原因只这样user.*文件权限分配是windows 2003下在windows 2003下我ls -l看权限是666 在linux下我看拷过来后权限变成了600(其实正常情况下600就行了只不过这里文件属主不是mysql拷过来后属主变为了root,所以会出现权限不够这时候如果你改成权限666则可以了当然这样不好没有解决问题实质)在/var/lib/mysql/mysql/下ls -l看了下 再 #chown -R mysql:mysql user.* #chmod 600 user.* //OK,DONE 重起下MYSQL 重新连接 mysql>use mysql mysql>update user Password=PASSWORD('xxxxxx') where User='root'; mysql>FLUSH PRIVILEGES; 有点值得注意:如果你windows 下mysql如果是默认配置话注意要还要执行 mysql>delete from user where User=''; mysql>delete from user where Host='%'; mysql>FLUSH PRIVILEGES; 好了到这里恢复密码过程就完成了 0
相关文章
读者评论发表评论 |