轻松上手,快乐学习!

MySQL 教程

MySQL 首页MySQL 介绍MySQL 安装MySQL 实例库下载MySQL 实例库导入MySQL SELECTMySQL DISTINCTMySQL ORDER BYMySQL WHEREMySQL ANDMySQL ORMySQL INMySQL BETWEENMySQL LIKEMySQL LIMITMySQL IS NULLMySQL 别名MySQL JOINSMySQL INNER JOINMySQL LEFT JOINMySQL RIGHT JOINMySQL CROSS JOINMySQL SELF JOINMySQL GROUP BYMySQL HAVINGMySQL ROLLUPMySQL 子查询MySQL 派生表MySQL EXISTSMySQL CTEMySQL 递归 CTEMySQL UNIONMySQL INTERSECTMySQL MINUSMySQL INSERTMySQL INSERT INTO SELECTMySQL INSERT IGNOREMySQL UPDATEMySQL UPDATE JOINMySQL DELETEMySQL ON DELETE CASCADEMySQL DELETE JOINMySQL REPLACEMySQL PREPAREMySQL 事务MySQL 表锁定MySQL USEMySQL 数据库管理MySQL CREATE DATABASEMySQL DROP DATABASEMySQL 存储引擎MySQL CREATE TABLEMySQL 序列MySQL ALTER TABLEMySQL RENAME TABLEMySQL DROP COLUMNMySQL ADD COLUMNMySQL DROP TABLEMySQL 临时表MySQL TRUNCATE TABLEMySQL 数据类型MySQL NOT NULLMySQL Primary KeyMySQL Foreign KeyMySQL UNIQUEMySQL CHECKMySQL 字符集MySQL 排序规则MySQL 导入 CSVMySQL 导出 CSVMySQL 自然排序MySQL 基础

MySQL 存储过程

MySQL 存储过程介绍MySQL 存储过程实例MySQL 存储过程变量MySQL 存储过程参数MySQL 存储过程返回多值MySQL IF 语句MySQL CASE 语句MySQL IF CASE 选择MySQL 存储过程循环MySQL 存储过程游标MySQL 存储过程列表MySQL 存储过程异常处理MySQL SIGNAL 和 RESIGNALMySQL 存储函数

MySQL 视图

MySQL 视图教程SQL 视图介绍MySQL 视图介绍MySQL 创建视图MySQL 可更新视图WITH CHECK OPTIONLOCAL&CASCADEDMySQL 视图管理

MySQL 触发器

MySQL 触发器SQL 触发器MySQL 触发器介绍MySQL 触发器的创建MySQL 创建多个触发器MySQL 触发器管理MySQL 计划事件MySQL事件修改

MySQL 索引

MySQL 索引MySQL 索引创建MySQL 索引删除MySQL 显示索引MySQL 唯一索引MySQL 前缀索引MySQL 隐形索引MySQL 降序索引MySQL 复合索引MySQL 聚集索引MySQL 索引基数MySQL USE INDEXMySQL 强制索引

MySQL 管理

MySQL 管理MySQL访问控制系统MySQL 用户创建MySQL 用户密码MySQL 权限授予MySQL 权限撤销MySQL 角色MySQL 删除用户MySQL 表维护mysqldump 备份工具MySQL 数据库列表MySQL 表列表MySQL 表字段列表MySQL 用户列表MySQL 进程列表MySQL 列生成比较MySQL中同一表中的连续行

MySQL 全文搜索

MySQL 全文搜索MySQL 全文搜索介绍FULLTEXT索引MySQL 自然语言全文搜索MySQL 布尔全文搜索MySQL查询扩展MySQL ngram

MySQL 高级

MySQL 函数MySQL 窗口函数

MySQL 技巧

MySQL 查找重复数据MySQL 删除重复数据MySQL UUIDMySQL 表的复制MySQL 复制库MySQL 变量MySQL SELECT INTO 变量MySQL 表的存储引擎MySQL 使用正则查询MySQL 添加序号MySQL 随机查询MySQL 查询第 N 高记录MySQL 重置自增值MySQL VS MariaDBMySQL 间隔值MySQL 获取当天日期MySQL NULL 映射MySQL 注释理解MySQL EXPLAINMySQL 技巧介绍MySQL COUNTMySQL 数据分层MySQL 两表比较Mysql Like 优化

MySQL 窗口函数

MySQL CUME_DIST() 函数MySQL DENSE_RANK() 函数MySQL FIRST_VALUE 函数MySQL LAG() 函数MySQL LAST_VALUE() 函数MySQL LEAD 函数MySQL NTH_VALUE 函数MySQL NTILE 函数MySQL PERCENT_RANK 函数MySQL RANK 函数MySQL ROW_NUMBER 函数

MySQL 应用

MySQL应用程序编程接口PHP MySQL教程PHP 数据库连接

MySQL 优化

mysqld 内存持续变高


MySQL 用户密码


摘要:在本教程中,您将学习如何使用各种语句,如  UPDATESET PASSWORD,ALTER USER 语句修改MySQL用户密码。

在更改MySQL用户  帐户的密码之前  ,您应考虑以下重要问题:

  • 您想要更改密码的用户帐户是什么?
  • 什么应用程序正在使用其密码被更改的用户帐户?如果在不更改使用用户帐户的应用程序的连接字符串的情况下更改密码,则应用程序将无法连接到数据库服务器。

在回答完这些问题之后。您可以开始更改用户帐户的密码。

MySQL提供,您可以使用更改,包括用户的密码,各种报表  UPDATESET PASSWORD, GRANT USAGE 语句。


使用UPDATE语句更改MySQL用户密码

更改密码的第一种方法是使用UPDATE 语句来更新mysql数据库user表。

执行UPDATE语句后,还需要执行FLUSH PRIVILEGES 语句以从mysql数据库中的grant表重新加载权限。

假设你想为dbadmin更改密码,则需要执行以下语句:

USE mysql;
 
UPDATE user 
SET password = PASSWORD('dolphin')
WHERE user = 'dbadmin' AND 
      host = 'localhost';
 
FLUSH PRIVILEGES;
请注意,从MySQL 5.7.6开始,用户表authentication_string仅使用列来存储密码。此外,它删除了password列。

因此,如果您使用MySQL 5.7.6+,则必须使用UPDATE语句中的authentication_string列:

USE mysql;
 
UPDATE user 
SET authentication_string = PASSWORD('dolphin')
WHERE user = 'dbadmin' AND 
      host = 'localhost';
 
FLUSH PRIVILEGES;

注意:PASSWORD()函数计算纯文本的哈希值,同时在MySQL 8.0.11版本中PASSWORD被移除。


使用SET PASSWORD语句更改MySQL用户密码

更改密码的第二种方法是使用SET PASSWORD  语句。

您使用user@host 格式的用户帐户来更新密码。如果您需要更改其他帐户的密码,您的帐户至少需要拥有UPDATE权限。

通过使用SET PASSOWORD语句,您无需执行FLUSH PRIVILEGES 语句即可从授权表重新加载权限。

以下语句dbadmin 使用SET PASSWORD  语句更改用户帐户的密码   。

SET PASSWORD FOR 'dbadmin'@'localhost' = PASSWORD('bigshark');

请注意,从版本5.7.6开始,MySQL对此语法进行了折旧,并可能在将来的版本中将其删除。相反,它使用明文密码如下:

SET PASSWORD FOR 'dbadmin'@'localhost' = 'bigshark';

使用ALTER USER语句更改MySQL用户密码

更改用户帐户密码的第三种方法是使用ALTER USER 带有IDENTIFIED BY  子句的语句  。

以下ALTER USER 语句将dbadmin 用户的密码更改  为littlewhale

ALTER USER dbadmin@localhost IDENTIFIED BY 'littlewhale';

如果要重置MySQL root 帐户的密码,则需要强制MySQL数据库服务器停止并重新启动,而不使用授权表验证。

在本教程中,我们向您介绍了一些方便的语句,允许您更改MySQL数据库中用户帐户的密码。