正确重置MySQL密码

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 06:48 点击:

   谁都不想弄丢家门钥匙,但不管多么小心,时间长了,这样的事情总会发生几次。MySQL密码也是一样,把它写在文档上不太安全,记在脑子里又难免会忘记。

  如果你忘记了MySQL密码,如何重置它呢?

  下面是错误答案:

  首先停止MySQL服务,然后使用skip-grant-tables参数启动它:

  shell> /etc/init.d/mysql stop

  shell> mysqld_safe --skip-grant-tables & 

  此时无需授权就可以进入到MySQL命令行,使用SQL重置MySQL密码:

  UPDATE mysql.user SET Password=PASSWORD(...) WHERE User=... AND Host= ...;

  FLUSH PRIVILEGES; 

  为什么说它是错误答案?因为在单纯使用skip-grant-tables参数启动服务后,除非数据库服务器屏蔽了外网访问,否则除了自己,其它别有用心的人也可能访问数据库,尽管重置密码所需的时间很短,但俗话说不怕贼偷就怕贼惦记着,任何纰漏都可能酿成大祸。

  下面是正确答案:

  关键点是:在使用skip-grant-tables参数的同时,还要加上skip-networking参数:


  shell> mysqld_safe --skip-grant-tables --skip-networking & 

  接着使用SQL重置密码后,记得去掉skip-networking,以正常方式重启MySQL服务:

  shell> /etc/init.d/mysqld restart

  上面的方法需要重启两次服务,实际上还能更优雅一点,重启一次即可:

  首先需要把用到的SQL语句保存到一个文本文件里(/path/to/init/file):

  UPDATE mysql.user SET Password=PASSWORD(...) WHERE User=... AND Host= ...;

  FLUSH PRIVILEGES; 

  接着使用init-file参数启动MySQL服务,

  shell> /etc/init.d/mysql stop

 

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • mysql-mmm
      • mysqldump命令——MySQL数据库备份还原
      • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
      • 简简单单储存过程——循环一个select结果集
      • MySQL数据库十大优化技巧
      • Mysql主主复制架构配置
      • Mysql安装笔记
      • MySQL Stmt预处理提高效率问题的小研究
      • Mysql的Procedure 参数为NULL问题分析
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1