正确重置MySQL密码

标签: Technical MySQL | 发表时间:2011-06-12 07:37 | 作者:老王 xxg
出处:http://huoding.com

谁都不想弄丢家门钥匙,但不管多么小心,时间长了,这样的事情总会发生几次。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
shell> mysqld_safe --init-file=/path/to/init/file &

此时,密码就已经重置了,最后别忘了删除文件内容,免得泄露密码。

提示:本文用到的参数都是通过命令行mysqld_safe传递的,实际上也可以通过my.cnf。

参考:关于重置密码,官方文档里有专门的描述:How to Reset the Root Password

相关 [正确 mysql 密码] 推荐:

正确重置MySQL密码

- xxg - 火丁笔记
谁都不想弄丢家门钥匙,但不管多么小心,时间长了,这样的事情总会发生几次. MySQL密码也是一样,把它写在文档上不太安全,记在脑子里又难免会忘记. 如果你忘记了MySQL密码,如何重置它呢. 首先停止MySQL服务,然后使用skip-grant-tables参数启动它:. 此时无需授权就可以进入到MySQL命令行,使用SQL重置MySQL密码:.

如何理解并正确使用 MySQL 索引

- - 文章 – 伯乐在线
索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧. 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构. 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度.

mysql无法修改密码的解决办法

- - CSDN博客系统运维推荐文章
Enter password: <输入新设的密码newpassword>  . 直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:  . Enter password: <输入[client]节的密码>  . Enter password: <输入新设的密码newpassword>  .

windows下mysql忘记root密码的解决方法

- - 开源软件 - ITeye博客
1、在DOS窗口下输入net stop mysql5 或 net stop mysql. 2、开一个DOS窗口,这个需要切换到mysql的bin目录. 一般在bin目录里面创建一个批处理1.bat,内容是cmd.exe运行一下即可就切换到当前目录,然后输入. 3、再开一个DOS窗口,mysql -u root.

加盐密码哈希:如何正确使用

- - 编程语言 - ITeye博客
原文地址:http://blog.jobbole.com/61872/. 本文由 伯乐在线 - 蒋生武 翻译. 英文出处:Crackstation. 如果你是Web开发者,你很可能需要开发一个用户账户系统. 这个系统最重要的方面,就是怎样保护用户的密码. 存放帐号的数据库经常成为入侵的目标,所以你必须做点什么来保护密码,以防网站被攻破时发生危险.

mysql 数据库root密码忘记后的强制修改办法

- - 阿辉的空间
第一:首先要把mysqld停止. 第二:启动mysql,但是要跳过权限表. 第三:进去mysql,并修改密码. 第四:重新启动mysql,正常进入. 类别: Database  查看评论.

正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java hea

- - Java - 编程语言 - ITeye博客
昨天在项目中需要对日志的查询结果进行导出功能. 日志导出功能的实现是这样的,输入查询条件,然后对查询结果进行导出. 之前的解决方案都是多次查询,然后使用limit 限制每次查询的条数. 那么能不能一次查询就把所有结果倒出来了. 于是我就使用一次查询,不使用limit分页. 结果出现 java.lang.OutOfMemoryError: Java heap space问题.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

mysql backup 脚本

- - ITeye博客
网上备份脚本很多,但考虑都不周全. 保证创建备份文件只能是创建者跟root可以访问,其他用户没有权限,保证了数据库备份的安全. 上面脚本是负责备份的份数管理,. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

MySQL Replication 线程

- - CSDN博客推荐文章
Replication 线程. Mysql 的Replication 是一个异步的复制过程,从一个Mysql instace(我们称之为Master)复制到另一个Mysql instance(我们称之Slave). 在Master 与Slave 之间的实现整个复制过程主. 要由三个线程来完成,其中两个线程(Sql 线程和IO 线程)在Slave 端,另外一个线程(IO 线程)在Master 端.