mysql 更改密码 alter_MySQL修改账号密码方法大全

news/2024/12/2 19:51:56/

前言:

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

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段登录,密码尽量复杂些,最好能够定期修改,特别是重要的环境不能有半点马虎。年底了,安全才是王道。


http://www.ppmy.cn/news/681449.html

相关文章

linux下用户名怎么修改密码,LINUX用户名密码忘记怎么修改用户密码

1、LINUX是做什么的? Linux服务器是设计出来进行业务处理应用的,在网络和计算机系统当中有广泛的应用,可以提供数据库管理和网络服务等内容,是一种性能非常高的和开源的服务器,在我国的计算机系统的客户端当中&#xf…

mysql8 修改密码

mysql8 与以前版本还是有点区别的 首先登陆mysql mysql -u root -p 密码 use mysq; ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的新密码

mysql5.7.21版本修改root密码

今天安装了最新的mysql5.7.21版本,安装成功后没有密码就可以进去了,所以学习了一下root用户的密码设置,记录一下。

Mysql5.5命令行修改密码

一、 如何在已知密码的情况下修改mysql的用户密码呢? USE mysql; SELECT * FROM USER; 修改密码 UPDATE USER SET PASSWORDPASSWORD(你的密码) WHERE USERroot; 也可分配权限账户: GRANT SELECT ON test.employee TO ericlocalhost IDENTIFIED BY 123456; G…

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysqld 3、使用 root 用户登录到 mysql:mys…

MYSQL修改数据库密码

1、mysql5.7以前的版本 选择mysql这个数据库里的user表的password这个字段,修改密码只需依次执行以下sql update MySQL.user set passwordpassword(123456) where userroot ; flush privileges;2、mysql5.7及更高版本 可是到了5.7版本,user表里就没有…

用命令修改oracle的密码,用命令修改Oracle数据库密码

1、改密码 (1).打开doc命令框键入:sqlplus /nolog (2).输入:connect / as sysdba (3).修改密码:alter user userName identified by passWord; (4).解锁:alter user userName account unlock; (5).退出:exit; 2、开服务 (1).先开核…

oracle sys改密码,忘记oracle的sys用户密码怎么修改

一、忘记除SYS、SYSTEM用户之外的用户的登录密码。 用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA; 使用如下语句修改用户的密码: ALTER USER user_name IDENTIFIED BY "newpass"; 注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988: 口…