windows平台下如何修改mysql数据库密码

上传人:子 文档编号:42744408 上传时间:2018-06-03 格式:DOC 页数:11 大小:34.50KB
返回 下载 相关 举报
windows平台下如何修改mysql数据库密码_第1页
第1页 / 共11页
windows平台下如何修改mysql数据库密码_第2页
第2页 / 共11页
windows平台下如何修改mysql数据库密码_第3页
第3页 / 共11页
windows平台下如何修改mysql数据库密码_第4页
第4页 / 共11页
windows平台下如何修改mysql数据库密码_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《windows平台下如何修改mysql数据库密码》由会员分享,可在线阅读,更多相关《windows平台下如何修改mysql数据库密码(11页珍藏版)》请在金锄头文库上搜索。

1、windowswindows 平台下如何修改平台下如何修改 mysqlmysql 数据库密码数据库密码windows 平台下如何修改 mysql 数据库密码先要声明一点,大部分情况下,修改 MySQL 是需要有 mysql 里的root 权限的, 所以一般用户无法更改密码,除非请求管理员。方法一 使用 phpmyadmin,这是最简单的了,修改 mysql 库的 user 表, 不过别忘了使用 PASSWORD 函数。方法二 使用 mysqladmin,这是前面声明的一个特例。 mysqladmin -u root -p password mypasswd 如:D:Mysqlbinmysqla

2、dmin -u root -p password adminEnter password:(在此输入你原密码)输入这个命令后,需要输入 root 的原密码,然后 root 的密码将改为 mypasswd。 把命令里的 root 改为你的用户名,你就可以改你自己的密码了。 当然如果你的 mysqladmin 连接不上 mysql server,或者你没有办法执行 mysqladmin, 那么这种方法就是无效的。 而且 mysqladmin 无法把密码清空。下面的方法都在 mysql 提示符下使用,且必须有 mysql 的 root 权限:方法三 mysql Insert INTO mysql.u

3、ser (Host,User,Password) VALUES(%,jeffrey,PASSWORD(biscuit); mysql FLUSH PRIVILEGES 确切地说这是在增加一个用户,用户名为 jeffrey,密码为biscuit。 在mysql 中文参考手册里有这个例子,所以我也就写出来了。 注意要使用 PASSWORD 函数,然后还要使用 FLUSH PRIVILEGES。方法四 和方法三一样,只是使用了 REPLACE 语句 mysql REPLACE INTO mysql.user (Host,User,Password) VALUES(%,jeffrey,PASSWORD

4、(biscuit); mysql FLUSH PRIVILEGES方法五 使用 SET PASSWORD 语句, mysql SET PASSWORD FOR jeffrey“%“ = PASSWORD(biscuit); 拟也必须使用 PASSWORD()函数, 但是不需要使用 FLUSH PRIVILEGES。方法六 使用 GRANT . IDENTIFIED BY 语句 mysql GRANT USAGE ON *.* TO jeffrey“%“ IDENTIFIED BY biscuit; 这里 PASSWORD()函数是不必要的,也不需要使用 FLUSH PRIVILEGES。注意:

5、 PASSWORD() 不是以在 Unix 口令加密的同样方法施行口令加密。MySQL 忘记口令的解决办法如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。 启动 MySQL :bin/safe_mysqld -skip-grant-tables flush privileges;重新杀 MySQL ,用正常方法启动 MySQL 。mysql 密码清空Windows: 1.用系统管理员登陆系统。 2.停止 MySQL 的服务。 3.进入命令窗口,然后进入 MySQL 的安装目录,比如我的安装目录是 c:mysql,进入 C:mysqlbin 4.跳过权限检查启动

6、 MySQL, c:mysqlbinmysqld-nt -skip-grant-tables 5.重新打开一个窗口,进入 c:mysqlbin 目录,设置 root 的新密码 c:mysqlbinmysqladmin -u root flush-privileges password “newpassword“ c:mysqlbinmysqladmin -u root -p shutdown 将 newpassword 替换为你要用的 root 的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。 6.停止 MySQL Server,用正常模式启动 Mysql 7你可以用新的密码链

7、接到 Mysql 了。Unix mysql FLUSH PRIVILEGES; mysql QUIT教你如何将 MySQL 数据库的密码恢复因为 MySQL 密码存储于数据库 mysql 中的 user 表中,所以只需要将我 windows 2003 下的 MySQL 中的 user 表拷贝过来覆盖掉就行了。在 c:mysqldatamysql(linux 则一般在/var/lib/mysql/mysql/)目录下有三个 user 表相关文件 user.frm、user.MYD、user.MYIuser.frm /user 表样式文件user.MYD /user 表数据文件user.MYI /

8、user 表索引文件为保险起见,三个都拷贝过来,不过其实如果之前在要恢复的那个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 密码登陆了mysqluse mysqlmysqlupdate user set Password=PASSWORD(xxxxxx) where User=root;这时候会出错,提示 user 表只有读权限我分析了一下原因

9、,只这样的,因为 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重新连接m

10、ysqluse mysqlmysqlupdate user set Password=PASSWORD(xxxxxx) where User=root;mysqlFLUSH PRIVILEGES;有一点值得注意:如果你 windows 下 mysql 如果是默认配置的话,注意要还要执行mysqldelete from user where User=; mysqldelete from user where Host=%; mysqlFLUSH PRIVILEGES;好了,到这里恢复密码过程就完成了这个方法么就是有点局限性,你必须也具备另外的 user 表文件其他还有几种方法其它方法一(这个是

11、网上流传较广的方法,mysql 中文参考手册上的)1. 向 mysqld server 发送 kill 命令关掉 mysqld server(不是 kill -9),存放进程 ID 的文件通常在 MYSQL 的数据库所在的目录中。killall -TERM mysqld你必须是 UNIX 的 root 用户或者是你所运行的 SERVER 上的同等用户,才能执行这个操作。2. 使用-skip-grant-tables 参数来启动 mysqld。 LINUX 下:/usr/bin/safe_mysqld -skip-grant-tables , windows 下c:mysqlbinmysqld

12、-skip-grant-tables3. 然后无密码登录到 mysqld server ,use mysql update user set password=password(“new_pass“) where user=“root“; flush privileges;。你也可以这样做:mysqladmin -h hostname -u user password new password4. 载入权限表:mysqladmin -h hostname flush-privileges或者使用 SQL 命令FLUSH PRIVILEGES5.killall -TERM mysqld6.用新密

13、码登陆其它方法二直接用十六进制编辑器编辑 user.MYD 文件不过这个里面我要说明一点,我这里编辑的时候发现个问题,加密的密码串有些是连续存储的,有些的最后两位被切开了,后两位存储在后面其他地方.这一点我还没想明白.还有注意一点就是编辑的是加密过的密码串,也就是说你还是需要另外有 user 表文件。这种方法和我最上面介绍的方法的区别在于,这种方法直接编辑 linux下的 user 表文件,就不需要重新改文件属主和权限了/后记,因为恢复过程比较好玩,所以写了篇笔记,不要砸我啊/各位高手还有什么其他好玩的方法不要忘了告诉我哦:)修正一下:我在 Windows 下的实际操作如下1.关闭正在运行的

14、MySQL。2.打开 DOS 窗口,转到 mysqlbin 目录。3.输入mysqld-nt -skip-grant-tables回车。如果没有出现提示信息,那就对了。4.再开一个 DOS 窗口(因为刚才那个 DOS 窗口已经不能动了) ,转到mysqlbin 目录。5.输入 mysql 回车,如果成功,将出现 MySQL 提示符 6. 连接权限数据库use mysql; (是本来就有的提示符,别忘了最后的分号)6.改密码: update user set password=password(“123456“) where user=“root“; (别忘了最后的分号)7.刷新权限(必须的步骤

15、)flush privileges;8.退出 q9.注销系统,再进入,开 MySQL,使用用户名 root 和刚才设置的新密码 123456 登陆。据说可以用直接修改 user 表文件的方法:关闭 MySQL,Windows 下打开 Mysqldatamysql,有三个文件user.frm,user.MYD,user.MYI 找个知道密码的 MySQL,替换相应的这三个文件,如果 user 表结构没改过,一般也没人去改,替换user.MYD 就可以了。也可以直接编辑 user.MYD,找个十六进制编辑器,UltraEdit 就有这个功能。关闭 MySQL,打开 user.MYD。将用户名 root 后面的八个字符改为 565491d704013245,新密码就是 123456。或者将它们对应的十六进制数字, (左边那里,一个字符对应两个数字) ,改为 00 02 02 02 02 02 02 02,这就是空密码,在编辑器右边看到的都是星号*,看起来很象小数点。重开 MySQL,输入 root 和你的新密码。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号