小结——在我们通过命令提示窗口连接数据库时一定要使用mysql -u root -p命令来连接,如果不加-p参数提示连接密码的话也可能会出现“access denied for user root @ localhost using password:no”的错误提示,加上-p参数后再输入正确密码才能够登录到MYSQL管理控制台。 (如图8)
三,MYSQL数据库ROOT密码恢复功略:
如果不小心把MYSQL数据库密码忘记了该怎么恢复呢?如果MYSQL数据库密码被黑客入侵者攻击篡改又该如何亡羊补牢避免损失呢?下面我们就来看看MYSQL数据库ROOT密码恢复的步骤。
正常情况下我们通过mysql -u root -p命令然后输入正确的root帐户密码可以顺利登录到MYSQL管理控制台。(如图9)如果密码忘记或输入错误的话会出现关闭连接的提示——“access denied for user root @ localhost using password:yes”。(如图10)
(1)巧重装解决密码问题:
遇到密码忘记的情况我们可以采取卸载后重新安装的方法解决,再次执行MYSQL数据库安装程序,然后选择remove instance选项即可马上卸载,当然通过程序里MYSQL程序下的配置向导也能够完成卸载删除工作。删除完毕我们再重新安装设置密码即可,因为MYSQL程序与数据库文件都是分开存在的,所以我们不用担心数据库文件的损坏。(如图11)
(2)编辑user.myd破解ROOT密码:
另外在我们的MYSQL安装目录下有一个名为user.myd的文件,一般来说他保存在mysql\data\mysql目录下,这个文件是MYSQL帐户配置文件,我们可以通过编辑此文件实现破解MYSQL数据库root密码的目的。用超文本编辑器打开该文件找到对应项进行修改即可。(如图12)
(3)终极技破解ROOT密码:
上面介绍的两个办法虽然有效但是第一个遇到数据库关联时无法起作用,而第二个方法还需要我们安装编辑器软件比较麻烦,下面我们来看看笔者百试不爽的终极技巧破解ROOT管理密码。
第一步:以管理员的身份登录到windows系统后我们通过记事本新建立一个文本文件,将这个文本文件起一个名字叫pwdhf.txt,然后输入一行内容——SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');(包括分号)其中的mynewpassword就是我们要修改后的新密码。(如图13)
第二步:通过输入CMD回车打开一个控制台窗口进入命令提示窗口,假设我们的MySQL主目录是C:/mysql/bin,那么直接运行c:\mysql\bin\mysqld-nt --init-file=c:\mysql\pwdhf.txt后回车即可,这样我们的MYSQL将自动加载之前建立的TXT文本文件里面的语句,从而实现了破解MYSQL密码的目的。当然在这之前我们要把pwdhf.txt文件复制到c:\mysql目录中才能够顺利加载,否则系统会呈现假死状态因为找不到对应的TXT文本文件。(如图14)
第三步:接下来我们通过开始->运行->输入services.msc进入服务配置窗口,找到MYSQL服务,在其上点鼠标右键选择停止,然后再重新以正常模式启动该服务即可。(如图15)
小提示:
如果是用安装精灵安装的MySQL数据库服务器,则需要通过服务管理工具来做改动,需要找到并添加默认设置文件,然后运行mysqld-nt --defaults-file="path\my.ini" --init-file=c:\mysql\pwdhf.txt来达到相同的目的。(如图16)
第四步:MYSQL服务重新启动后我们就可以尝试使用新修改设置的密码来连接MYSQL数据库控制台了,输入的密码就是pwdhf.txt中password后括号中的内容。(如图17)
四,总结:
至此我们就完成了两个经典的MYSQL数据库连接故障的排查任务,要知道企业数据库密码特别是ROOT管理员密码是非常重要的,在实际使用过程中我们一定要牢记他的信息,如果实在忘记再用本文介绍的方法来恢复和修改。另外本文介绍的是在windows系统中恢复MYSQL数据库帐户信息的办法,如果你使用的是Linux或其他系统操作步骤是不同的。比较折中的方法是使用客户端交互工具mysql来设置,然后停止mysql服务并重新以--skip-grand-table --user=root选项来启动MYSQL服务,通过UPDATE mysql.user SET Password=PASSWORD('softer'),WHERE User='root';FLUSH PRIVILEGES;三条命令来将ROOT密码恢复为softer,不过由于大多数用户使用的并不是Linux系统,所以本方法没有详细介绍,感兴趣的读者可以自行研究,在Windows系统中也可以用此办法恢复ROOT密码。