MySQL—密码设置相关

server/2025/3/4 18:32:26/

一、忘记密码

方法一:以安全模式启动mysql

步骤一:停止mysql服务

停止 MySQL 服务:打开终端,输入以下命令停止 MySQL 服务(根据你的系统和 MySQL 版本,命令可能有所不同):

systemctl stop mysqld

步骤二:以安全模式启动 MySQL

输入以下命令以安全模式启动 MySQL,跳过权限验证:

sudo mysqld_safe --skip-grant-tables &

& 符号表示在后台运行该进程。

步骤三:登录 MySQL

打开另一个终端窗口,输入 mysql 并回车,无需密码即可登录到 MySQL 服务器。


步骤四:修改密码

在 MySQL 命令行中,执行以下语句来修改密码(以 MySQL 8.0 为例):

USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

将新密码替换为实际密码。


步骤五:重启 MySQL

sudo systemctl start mysqld

步骤六:查看新密码设置是否正常

#登录
mysql -h 127.0.0.1 -uroot -p

方法二:通过在配置文件中添加skip-grant-tables参数进行修改

步骤一:停止MySQL服务


打开终端,使用管理员权限(通常需要 sudo)停止 MySQL 服务。对于使用 systemd 管理服务的系统(如大多数现代 Linux 发行版),可以执行以下命令:

sudo systemctl stop mysqld

步骤二:编辑MySQL配置文件


找到MySQL的配置文件,通常是my.cnf或 my.ini(在 Linux 系统中一般位于/etc/目录下)

vim /etc/my.cnf
[mysqld]
skip-grant-tables
# 其他配置项...

步骤三:启动 MySQL 服务


重新启动 MySQL 服务,使其加载新的配置:

systemctl start mysqld

步骤四:登录MySQL数据库


打开终端,直接输入 mysql 命令,此时不需要密码即可登录到 MySQL 服务器:

mysql

步骤五:修改密码


在 MySQL 命令行中,切换到 mysql 数据库(因为用户密码信息存储在该数据库中),然后使用 ALTER USER 语句修改密码。对于 MySQL 8.0 及以上版本,示例如下:

USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

将新密码替换为你想要设置的实际密码。FLUSH PRIVILEGES 语句用于刷新权限表,使新密码立即生效。

步骤六: 恢复配置文件并重启 MySQL

#去掉配置文件中的skip-grant-tables
vim /etc/my.cnf
[mysqld]
skip-grant-tables      #删除此行
# 其他配置项...#重启mysql服务
systemctl restart mysqld

步骤七:验证新密码登录是否正常

#登录
mysql -h 127.0.0.1 -uroot -p

二、修改密码

方法一:使用 ALTER USER 语句(已登录且有权限)

#修改密码-- 切换到 mysql 数据库,因为用户和权限信息存储在该数据库中
USE mysql;-- 修改 root 用户在本地登录(localhost)时的密码,新密码为 'newpassword'
-- 你需要将 'newpassword' 替换为你实际想要设置的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';-- 刷新权限,使新密码立即生效
FLUSH PRIVILEGES;

方法二:使用 SET PASSWORD 语句(已登录且有权限)

-- 修改当前登录用户的密码,新密码为 'newpassword'
-- 你需要将 'newpassword' 替换为你实际想要设置的密码
SET PASSWORD = PASSWORD('newpassword');-- 如果你想修改其他用户的密码(需有相应权限)
-- 例如修改 root 用户在本地登录(localhost)时的密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');

三、设置密码为永不过期

1、password_lifetime值的含义

password_lifetime值为null和0
数据库管理中, password_lifetime 是一个常见的安全参数,用于指定密码的有效期。如果  password_lifetime 的值为  NULL 或  0,它们可能代表不同的含义:
  • NULL
表示没有设置密码有效期限制。密码可以使用无限期。
  • 0
表示密码不会过期。这通常意味着强密码策略不会被应用。
password_lifetime 的值是一个正整数,表示密码应该被要求更改之前的最大天数。
password_lifetime 设置为  0,或者根本不设置此参数。
以 SQL Server 为例,设置密码有效期为 90 天:
ALTER LOGIN [your_login] WITH PASSWORD = 'new_password', PASSWORD_LIFETIME = 90;
禁用密码过期:
ALTER LOGIN [your_login] WITH PASSWORD = 'new_password', PASSWORD_LIFETIME = 0;

2、不同版本的MySQL设置密码永不过期的方法不同

2.1、MySQL 8.0及以上版本

以拥有足够权限的用户(如 root)登录 MySQL 数据库

USE mysql;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

2.2、MySQL 5.7版本

USE mysql;
SELECT User, Host, password_expired FROM mysql.user WHERE User = 'root' AND Host = 'localhost';
UPDATE mysql.user SET password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

2.3、以5.7版本为例进行修改

步骤一:查看用户是否设置密码过期的sql

 SELECT user, host, password_expired, password_lifetime FROM mysql.user WHERE user = 'root';

步骤二:修改为永不过期

ALTER USER 'root'@'%' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'127.0.0.1' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'stc'@'%' PASSWORD EXPIRE NEVER;


http://www.ppmy.cn/server/172397.html

相关文章

Difyにおけるデータベースマイグレーション手順

Difyにおけるデータベースマイグレーション手順 はじめに主要マイグレーションコマンドAlembic直接コマンドFlask-Migrate経由コマンド 標準マイグレーション作業フローデプロイ時の対応注意事項 はじめに Difyプロジェクトでのデータベースマイグレーションには、Alembicコマ…

idea + Docker + 阿里镜像服务打包部署

一、下载docker desktop软件 官网下载docker desktop,需要结合wsl使用 启动成功的画面(如果不是这个画面例如一直处理start或者是stop需要重新启动,不行就重启电脑) 打包成功的镜像在这里,如果频繁打包会导致磁盘空间被占满,需…

macos下myslq图形化工具之Sequel Ace

什么是Sequel Ace 官方github:https://github.com/Sequel-Ace/Sequel-Ace Sequel Ace 是一款快速、易于使用的 Mac 数据库管理应用程序,用于处理 MySQL 和 MariaDB 数据库。 Sequel Ace 是一款开源项目,采用 MIT 许可证。用户可以通过 Ope…

OOM故障排查指南:生成 JVM 内存快照并使用快照分析工具定位问题

引言 OOM(Out of Memory,内存溢出) 是Java应用程序中常见的故障之一,通常表现为 java.lang.OutOfMemoryError。OOM的原因可能是内存泄漏、内存分配过大或资源竞争等。为了快速定位和解决OOM问题,开发者可以借助一些强…

Python Cookbook-2.27 从微软 Word 文档中抽取文本

任务 你想从 Windows 平台下某个目录树中的各个微软 Word 文件中抽取文本,并保存为对应的文本文件。 解决方案 借助 PyWin32 扩展,通过COM 机制,可以利用 Word 来完成转换: import fnmatch,os,sys,win32com.client wordapp w…

40岁开始学Java:Java中单例模式(Singleton Pattern),适用场景有哪些?

在Java中,单例模式(Singleton Pattern)用于确保一个类只有一个实例,并提供全局访问点。以下是详细的实现方式、适用场景及注意事项: 一、单例模式的实现方式 1. 饿汉式(Eager Initialization) …

WeakAuras Lua Script TOC

十字军的试炼,刺骨之寒,插件,团队高亮提示 WA-Script字符串: !WA:2!TRZAZTX11PLWVeKJJinRQTIscmTScPenkbPeRTNWKcqckbl(YaGKY6XaSl2lWUwG7UE3f8HsDQnRQTCDSDmRJTgBpojCC80jXX2f2v2wtI)G6FGZWPJh2V0pOXK2AM(KTnoTnzCp37DxGfGlOivt…

【子网掩码计算器:Python + Tkinter 实现】

子网掩码计算器:Python Tkinter 实现 引言代码功能概述代码实现思路1. 界面设计2. 功能实现3. 事件处理 子网掩码计算器实现步骤1. 导入必要的库2. 定义主窗口类 SubnetCalculatorApp3. 创建菜单栏4. 创建界面组件5. 判断 IP 地址类别6. 计算子网信息7. 其他功能函…