mysql修改密码的命令(mysql改默认密码)

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

下面是错误答案:

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

shell /etc/init.d/mysql stop\nshell mysqld_safe –skip-grant-tables &\n

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

UPDATE mysql.user SET Password=PASSWORD(‘…’) WHERE User=’…’ AND Host= ‘…’;\nFLUSH PRIVILEGES;\n

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

下面是正确答案:

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

shell mysqld_safe –skip-grant-tables –skip-networking &\n

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

shell /etc/init.d/mysqld restart\n

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

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

UPDATE mysql.user SET Password=PASSWORD(‘…’) WHERE User=’…’ AND Host= ‘…’;\nFLUSH PRIVILEGES;\n

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

shell /etc/init.d/mysql stop\nshell mysqld_safe –init-file=/path/to/init/file &\n

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2022年9月20日 10:26
下一篇 2022年9月20日 10:29

相关推荐

发表回复

登录后才能评论