服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 又忘记MYSQL密码啦?教你几种更改密码的方式

又忘记MYSQL密码啦?教你几种更改密码的方式

2020-12-17 23:00MySQL技术 Mysql

在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。

 前言:

在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。

又忘记MYSQL密码啦?教你几种更改密码的方式

1.忘记 root 密码

忘记 root 密码的场景还是比较常见的,特别是自己搭的测试环境经过好久没用过时,很容易记不得当时设置的密码。这个时候一般常用的方法是跳过权限验证,然后更改 root 密码,之后再启用权限验证。以 MySQL 5.7 版本为例简单讲下主要过程:

首先修改配置文件,在[mysqld]部分加上一句:skip-grant-tables ,加上此参数的目的是跳过权限验证。然后重启数据库,数据库再次启动后,我们就可以不用密码直接登录数据库修改密码了。

# skip-grant-tables 模式下修改root密码 

[root@host ~]# mysql 

Welcome to the MySQL monitor.  Commands end with ; or \g. 

Your MySQL connection id is 16 

Server version: 5.7.23-log MySQL Community Server (GPL) 

 

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. 

 

Oracle is a registered trademark of Oracle Corporation and/or its 

affiliates. Other names may be trademarks of their respective 

owners. 

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

 

mysql> update mysql.user set authentication_string = password ('xxxxxx'where user = 'root' and host = 'localhost'

Query OK, 0 rows affected, 1 warning (0.00 sec) 

Rows matched: 1  Changed: 0  Warnings: 1 

 

mysql> flush privileges

Query OK, 0 rows affected (0.01 sec) 

修改完 root 密码后,再次去除 skip-grant-tables 参数,然后重启下数据库即可。

2.几种修改密码的方法

除去忘记密码,可能还有其他情景需要修改密码,这时候就可以采取普通方式修改密码了。还是以 MySQL 5.7 版本为例,介绍几种常用的修改密码的方法。

使用 alter user 修改

比如如果想更改 testuser 账号的密码,我们可以使用 root 账号登录,然后执行 alter user 命令更改 testuser 账号的密码。

mysql> alter user 'testuser'@'%' identified by 'Password1'

Query OK, 0 rows affected (0.01 sec) 

 

mysql> flush privileges

Query OK, 0 rows affected (0.00 sec) 

使用 SET PASSWORD 命令

使用 SET PASSWORD 修改密码命令格式为 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpass'); 同样是使用 root 账号可修改其他账号的密码。

mysql> SET PASSWORD FOR 'testuser'@'%' = PASSWORD('Password2'); 

Query OK, 0 rows affected, 1 warning (0.00 sec) 

 

mysql> flush privileges

Query OK, 0 rows affected (0.00 sec) 

使用 mysqladmin 修改密码

使用 mysqladmin 命令修改账号密码格式为 mysqladmin -u用户名 -p旧密码 password 新密码

[root@host ~]# mysqladmin -utestuser -pPassword2 password Password3 

mysqladmin: [Warning] Using a password on the command line interface can be insecure. 

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. 

[root@host ~]# mysql -utestuser -pPassword3 

mysql: [Warning] Using a password on the command line interface can be insecure. 

Welcome to the MySQL monitor.  Commands end with ; or \g. 

Your MySQL connection id is 2388 

Server version: 5.7.23-log MySQL Community Server (GPL) 

 

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. 

 

Oracle is a registered trademark of Oracle Corporation and/or its 

affiliates. Other names may be trademarks of their respective 

owners. 

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

 

mysql>  

直接 update user 表

其实 MySQL 所以的账号信息都存储在 mysql.user 表里面,我们也可以直接通过 update user 表来修改密码。

# 5.7及之后版本 

mysql> update mysql.user set authentication_string = password ('Password4'where user = 'testuser' and host = '%'

Query OK, 1 row affected, 1 warning (0.06 sec) 

Rows matched: 1  Changed: 1  Warnings: 1 

 

mysql> flush privileges

Query OK, 0 rows affected (0.01 sec) 

 

# 5.6及之前版本 

update mysql.user set password=password('新密码'where user='用户名' and host='host';  

3.设置 login-path 本地快捷登陆

为了防止密码暴露及忘记密码,我们还可以设置 login-path 来实现在本地不输密码快捷登录。

login-path 是 MySQL 5.6 开始支持的新特性。通过借助 mysql_config_editor 工具将登陆 MySQL 服务的认证信息加密保存在 .mylogin.cnf 文件(默认位于用户主目录)。MySQL 客户端工具可通过读取该加密文件连接 MySQL ,实现快捷登录。

假设我们想配置 root 账号在本地快捷登录,可以这么做:

# 执行回车后需要输入一次root密码 

[root@host ~]# mysql_config_editor set --login-path=root -uroot  -hlocalhost -p -P3306  

Enter password:  

 

# 配置完成后可以使用login-path登录 

[root@host ~]# mysql --login-path=root 

Welcome to the MySQL monitor.  Commands end with ; or \g. 

Your MySQL connection id is 2919 

Server version: 5.7.23-log MySQL Community Server (GPL) 

 

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. 

 

Oracle is a registered trademark of Oracle Corporation and/or its 

affiliates. Other names may be trademarks of their respective 

owners. 

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

 

mysql>  

总结:

本篇文章主要介绍了修改数据库账号密码的几种方法,基本涵盖了所有的场景。这里也提醒下各位,数据库账号最好限制ip段登录,密码尽量复杂些,最好能够定期修改,特别是重要的环境不能有半点马虎。年底了,安全才是王道。

原文地址:https://mp.weixin.qq.com/s?__biz=MzI2NTA3OTY2Nw==&mid=2647635538&idx=1&sn=df62afbccc310da6dd0cb753c0b7aead&chksm=f299c84ec5ee415869a59a0f003d85bd8b9122cf324b30fa6a5adc9bfb0d9aa059a0fa0d1cde&mpshare=1&

延伸 · 阅读

精彩推荐
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5432020-06-03
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2962019-06-23
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6402020-03-13