科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道巧设置保平安还原企业数据库密码

巧设置保平安还原企业数据库密码

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

对于中小企业来说经常会遇到网络应用数据统计,这些环境都需要有数据库的搭配,今天就请各位跟随笔者一起学习如何巧设置保平安还原企业MYSQL数据库的密码。

作者:beijing 十月天堂 来源:IT168 2008年10月15日

关键字: 还原数据库密码 数据库密码 加密解密

  • 评论
  • 分享微博
  • 分享邮件

  对于中小企业来说经常会遇到网络应用数据统计,这些环境都需要有数据库的搭配,然而作为企业的网络管理员不知道你是否遇到过数据库密码忘记或者被非法入侵者攻击篡改信息而无法顺利连接数据库的问题,实际上只要我们有主机的控制权,能够物理接触服务器,那么恢复数据库密码将变得不再困难,今天就请各位跟随笔者一起学习如何巧设置保平安还原企业MYSQL数据库的密码。

  一,MYSQL数据库及帐户密码概述:

  MYSQL是很多企业都使用的数据库程序,他和PHP语言很好的兼容,默认情况下MYSQL会开启一个名为root的帐号,这个帐号具备最高的数据库读写权限,类似于我们系统的管理员administrator,他的重要性不言而喻,因此root帐号也逐渐成为黑客入侵者的对象。而与此同时很多企业网络管理员为了避免密码设置安全性比较弱而将root密码设置的非常复杂,大小写加SHIFT和数字,结果不小心自己忘记了将自身锁在了数据库之外。以上种种情况在实际中都是存在的,遇到这些问题时我们该如何操作呢?下面笔者就从两方面来介绍经典故障的解决步骤。

  二,MYSQL命令行本机登录故障:

  众所周知MYSQL数据库的管理和操作一般都是通过一条条SQL语句来完成,对数据库熟悉的用户会直接在命令提示窗口通过一条条命令完成。然而在实际使用过程中我们很可能会遇到命令行本机登录故障。下面我们就来分析无法本机通过命令行登录MYSQL的原因。

  (1)从用户参数入手解决odbc @ localhost登录出错故障:

  第一步:在命令行下输入mysql运行连接数据,提示“access denied for user odbc @ localhost,using password:no”。然后就直接退出返回到命令提示窗口光标下了。(如图1)

  第二步:我们修改运行命令,使用mysql -u root指令后回车,也就是说通过-u参数添加要登录的用户帐户信息,执行完毕后我们就可以顺利的连接到MYSQL数据库控制台了。(如图2)

  (2)从匿名帐户入手解决odbc @ localhost登录出错故障:

  当然除了上面提到的通过-u参数添加对应的连接帐户信息解决问题外,我们还可以通过建立匿名帐户来容许匿名用户连接数据库进行相关权限的操作,这样就不用为每次登录MYSQL都需要root帐户密码而麻烦了。具体操作如下。

  第一步:通过“开始”->“程序”->“MYSQL”->“MYSQL SERVER”找到mysql server instance config wizard程序,启动MYSQL配置向导。(如图3)

  第二步:在设置向导建立过程中我们会看到有mysql server instance configuration项,这里输入的是root帐户密码,而下面有一个create an anonymous account的选项,对应的是建立一个匿名登录帐户,只要我们在配置向导中将此选项打上对勾选中,那么我们就可以不通过-u参数而直接登录数据库了。(如图4)

  (3)数据库启动故障:

  在我们安装MYSQL数据库过程中最后阶段需要执行相关命令,很多用户会在执行到“apply security settiongs”时出现错误提示——access denied for user root@locaohost using password:yes。并且反复retry重新尝试无法通过,如果选择skip直接跳过的话MYSQL数据库运行又不正常。(如图5)

  经过笔者研究发现这个故障的根源是因为本机安装了防火墙造成的,我们只需要关闭第三方防火墙软件即可,不过对于XP系统用户来说由于XP系统内置了Windows防火墙,所以我们还需要在“控制面板”->“防火墙”中的“常规”标签下将其“关闭”。(如图6)

  当然关闭防火墙可能引起很多其他安全问题,这时我们可以利用防火墙的规则来只容许MYSQL数据库的连接通讯,以XP系统默认防火墙为例,找到“例外”标签,然后执行“添加程序”按钮,在打开的“添加程序”窗口制定MYSQL.EXE程序。确定后我们的MYSQL数据库就可以顺利连接了,而防火墙照样正常工作顺利保障系统安全。(如图7)

  小结——在我们通过命令提示窗口连接数据库时一定要使用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密码。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章