发布时间:2026/6/15 4:19:48
MySQL 学习笔记(第五期):用户管理与权限控制
MySQL 学习笔记第五期用户管理与权限控制本笔记承接第四期进入用户管理与权限控制的核心内容。涵盖用户账号的组成与创建/删除/重命名、密码管理含忘记密码解决方案、权限的分类与授权/回收、远程连接配置。所有代码均已加以整理和注释。一、MySQL 用户账号概述1.1 账号组成MySQL 中的用户账号由用户名和主机两部分组成格式为usernamehost。用户名和主机组合才能唯一标识一个用户。主机限制该账号只能从指定主机或 IP 连接 MySQL 服务器。通配符%表示任意长度的任意字符_表示单个字符。示例qgdlocalhost— 只能从本机连接qgd192.168.108.110— 只能从指定 IP 连接qgd10.0.0.%— 只能从 10.0.0.0/24 网段连接qgd%— 可从任意主机连接不安全1.2 默认用户MySQL 8.0 安装后默认创建以下用户均只能从 localhost 连接HostUser说明localhostroot超级管理员localhostmysql.infoschema系统账户localhostmysql.session系统账户localhostmysql.sys系统账户注意MySQL 8.0 中默认没有可远程登录的用户。二、用户管理操作DDL2.1 创建用户CREATE USER语法sqlCREATE USER usernamehost [IDENTIFIED BY password];范例sql-- 创建只能从特定网段连接的用户 CREATE USER test192.168.108.% IDENTIFIED BY 123456; -- 创建可从任意主机连接的用户不建议 CREATE USER test2% IDENTIFIED BY 123456; -- 创建无需密码的用户仅限测试环境 CREATE USER test3localhost;注意MySQL 8.0 已不支持GRANT语句同时创建用户必须先用CREATE USER。2.2 重命名用户RENAME USERsqlRENAME USER old_userold_host TO new_usernew_host;范例sqlRENAME USER test192.168.108.% TO tester10.0.0.%;2.3 删除用户DROP USERsqlDROP USER usernamehost;范例sqlDROP USER test192.168.108.%; DROP USER test2%; DROP USER IF EXISTS test3localhost;三、密码管理3.1 设置/修改密码MySQL 8.0 方法MySQL 8.0 中密码存储在mysql.user表的authentication_string字段已取消PASSWORD()函数。方法一使用 ALTER USER推荐sqlALTER USER usernamehost IDENTIFIED BY new_password;范例sqlALTER USER rootlocalhost IDENTIFIED BY 123456;方法二使用 SET PASSWORDMySQL 8.0 仍然支持sqlSET PASSWORD FOR usernamehost new_password;方法三使用 mysqladmin 命令行工具bashmysqladmin -u root -pold_password password new_password3.2 忘记 root 密码的解决方案方案一跳过授权表启动保留数据步骤编辑 MySQL 配置文件如/etc/my.cnf.d/mysql-server.cnf在[mysqld]段添加iniskip-grant-tables skip-networking # MySQL 8.0 可能不需要重启 MySQL 服务bashsystemctl restart mysqld无密码登录 MySQLbashmysql清空 root 密码设为空sqlUPDATE mysql.user SET authentication_string WHERE user root AND host localhost; FLUSH PRIVILEGES;退出 MySQL移除配置文件中的skip-grant-tables重启服务。使用空密码登录再设置新密码sqlALTER USER rootlocalhost IDENTIFIED BY new_password;方案二删除数据目录重新初始化会清除所有数据仅限测试bashsystemctl stop mysqld rm -rf /var/lib/mysql/* systemctl start mysqld # 自动重新初始化root 密码为空注意方案二会丢失所有数据库生产环境绝对禁止四、权限管理DCL4.1 权限分类MySQL 权限分为多个级别和类别类别权限示例管理类CREATE USER,FILE,SUPER,SHOW DATABASES,RELOAD,SHUTDOWN,REPLICATION SLAVE,LOCK TABLES,PROCESS程序类函数/存储过程/触发器CREATE,ALTER,DROP,EXECUTE库/表级别ALTER,CREATE,CREATE VIEW,DROP INDEX,SHOW VIEW,WITH GRANT OPTION数据操作SELECT,INSERT,DELETE,UPDATE字段级别SELECT(col1,col2...),UPDATE(col1,col2...),INSERT(col1,col2...)所有权限ALL PRIVILEGES或ALL4.2 授权GRANT语法sqlGRANT priv_type [(column_list)] ON [object_type] priv_level TO userhost [WITH GRANT OPTION];priv_level格式*— 所有数据库的所有对象*.*— 所有数据库的所有对象db_name.*— 指定数据库的所有对象db_name.tbl_name— 指定数据库的指定表db_name.routine_name— 指定存储过程/函数范例sql-- 授予指定库的所有权限 GRANT ALL ON wordpress.* TO wordpress10.0.0.%; -- 授予所有库的所有权限超级管理员并允许转授 GRANT ALL PRIVILEGES ON *.* TO root10.0.0.% WITH GRANT OPTION; -- 授予特定列的操作权限 GRANT SELECT (id, name), INSERT (id, name) ON mydb.users TO app%; -- 授予部分权限 GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO user1192.168.108.%;注意MySQL 8.0 中GRANT不再支持同时创建用户必须先CREATE USER。4.3 查看权限sql-- 查看指定用户的权限 SHOW GRANTS FOR usernamehost; -- 查看当前登录用户的权限 SHOW GRANTS FOR CURRENT_USER();范例sqlSHOW GRANTS FOR rootlocalhost;4.4 撤销权限REVOKE语法sqlREVOKE priv_type ON [object_type] priv_level FROM userhost;范例sql-- 撤销删除权限 REVOKE DELETE ON *.* FROM testuser172.16.0.%; -- 撤销所有权限 REVOKE ALL ON *.* FROM testuser172.16.0.%;4.5 权限生效MySQL 服务进程启动时将授权表加载到内存。执行GRANT或REVOKE后通常会自动生效。如未自动生效可手动刷新sqlFLUSH PRIVILEGES;五、远程连接配置5.1 创建可远程连接的用户sql-- 创建可从特定 IP 连接的 root 用户 CREATE USER root192.168.108.1 IDENTIFIED BY 123456; -- 授予所有权限 GRANT ALL PRIVILEGES ON *.* TO root192.168.108.1 WITH GRANT OPTION;5.2 远程客户端连接bash# 从客户端如 Windows CMD连接 mysql -u root -h 192.168.108.128 -p1234565.3 连接验证与常见错误查看当前连接的用户信息sqlSELECT USER(); -- 显示当前用户 SELECT CURRENT_USER(); -- 显示权限验证使用的用户查看连接线程sqlSHOW PROCESSLIST;常见错误ERROR 1130 (HY000): Host xxx is not allowed to connect to this MySQL server原因用户未授权从该主机连接。解决创建或修改用户的主机部分。六、完整权限管理实战流程场景为应用blog_app创建专用数据库和用户sql-- 1. 创建数据库 CREATE DATABASE blog_db CHARACTER SET utf8mb4; -- 2. 创建用户允许从 192.168.108.% 网段连接 CREATE USER blog_user192.168.108.% IDENTIFIED BY StrongPss123; -- 3. 授予该用户对 blog_db 的所有权限 GRANT ALL ON blog_db.* TO blog_user192.168.108.%; -- 4. 刷新权限可选通常自动生效 FLUSH PRIVILEGES; -- 5. 验证权限 SHOW GRANTS FOR blog_user192.168.108.%;远程测试bash# 在 192.168.108.x 网段的客户端执行 mysql -u blog_user -pStrongPss123 -h 192.168.108.128 -e USE blog_db; SHOW TABLES;七、本期知识点归纳一览表类别知识点关键语法/命令账号组成usernamehost主机限制% 通配符创建用户CREATE USERCREATE USER uh IDENTIFIED BY pwd;重命名用户RENAME USERRENAME USER oldh TO newh;删除用户DROP USERDROP USER uh;修改密码ALTER USERALTER USER uh IDENTIFIED BY new;忘记 root 密码跳过授权表skip-grant-tables→ 更新空密码 → 重新设置权限分类管理类、程序类、库表级、数据操作、字段级见上表授权GRANTGRANT priv ON db.* TO uh;查看权限SHOW GRANTSSHOW GRANTS FOR uh;撤销权限REVOKEREVOKE priv ON db.* FROM uh;权限生效FLUSH PRIVILEGES通常自动生效手动刷新远程连接创建带主机 % 或具体 IP 的用户mysql -u user -h server_ip -p下一期预告MySQL 备份与恢复冷备份、逻辑备份、增量备份与二进制日志恢复。

相关新闻

从监控服务器到第一个被监控设备:Zabbix 5.0安装后的快速上手指南
2026/6/14 20:04:42

从监控服务器到第一个被监控设备:Zabbix 5.0安装后的快速上手指南

从监控服务器到第一个被监控设备:Zabbix 5.0安装后的快速上手指南当你第一次看到Zabbix那个"很好看"的蓝色界面时,可能既兴奋又茫然。兴奋的是终于完成了复杂的安装过程,茫然的是满屏的英文菜单和专业术语让人无从下手。作为过来人…

阅读更多
Azure SDK for Python:微软云服务的 Python 入口
2026/6/8 6:56:55

Azure SDK for Python:微软云服务的 Python 入口

文章目录Azure SDK for Python:微软云服务的 Python 入口Azure SDK for Python:微软云服务的 Python 入口 微软官方维护的 Azure SDK for Python,目前已有 5546 个 Star: 这个项目是 Azure 官方 Python SDK 的活跃开发仓库&#…

阅读更多
告别命令行:用Battery Historian可视化分析BugReport,揪出App耗电与异常退出的关联
2026/6/11 10:59:27

告别命令行:用Battery Historian可视化分析BugReport,揪出App耗电与异常退出的关联

告别命令行:用Battery Historian可视化分析BugReport,揪出App耗电与异常退出的关联 在移动应用开发中,性能优化和稳定性保障是永恒的主题。当用户反馈应用出现异常退出、后台被杀或ANR等问题时,传统的日志分析方法往往效率低下且…

阅读更多
ROS 2参数管理完全手册:轻松配置与动态调整机器人行为
2026/6/15 3:57:56

ROS 2参数管理完全手册:轻松配置与动态调整机器人行为

ROS 2参数管理完全手册:轻松配置与动态调整机器人行为 【免费下载链接】ros2_documentation ROS 2 docs repository 项目地址: https://gitcode.com/gh_mirrors/ro/ros2_documentation ROS 2参数是节点的配置值,可在不修改代码的情况下调整机器人…

阅读更多
Tracearr多服务器管理指南:Plex、Jellyfin和Emby一站式监控策略
2026/6/15 3:57:56

Tracearr多服务器管理指南:Plex、Jellyfin和Emby一站式监控策略

Tracearr多服务器管理指南:Plex、Jellyfin和Emby一站式监控策略 【免费下载链接】Tracearr Real-time monitoring for Plex, Jellyfin, and Emby servers. Track streams, analyze playback, and detect account sharing from a single dashboard. 项目地址: http…

阅读更多
用GPT-4o自动生成SPC报告:省了每月2天重复劳动
2026/6/15 3:57:56

用GPT-4o自动生成SPC报告:省了每月2天重复劳动

每月SPC报告要花我2天,手动填数据画图写分析。用GPT-4o后30分钟搞定。这不是炫技,是真的把省下的时间用来做更有价值的事。一、痛点分析SPC报告每月一份,包含过程能力分析、控制图汇总、异常原因分析。手工做要2天。二、解决方案用GPT-4o API…

阅读更多
TVA 视觉智能体二次开发实战(十九):第三方非标机械手分类|通信协议、对接难度,以及与 TVA 视觉智能体的联动适配分析
2026/6/15 3:57:56

TVA 视觉智能体二次开发实战(十九):第三方非标机械手分类|通信协议、对接难度,以及与 TVA 视觉智能体的联动适配分析

导读市面上厂内存量机械手分为品牌标准机型、改版非标机型、作坊自制机型三类,超60%老旧产线机械手无官方SDK、无适配TVA联动驱动、厂家停服无技术支持,很多开发人员盲目选型通信对接方式,导致工期翻倍、联动延时超标、无法绑定TVA中台点位。…

阅读更多
Ruby Facets终极指南:解锁Ruby编程的100+核心扩展方法
2026/6/15 3:57:56

Ruby Facets终极指南:解锁Ruby编程的100+核心扩展方法

Ruby Facets终极指南:解锁Ruby编程的100核心扩展方法 【免费下载链接】facets Ruby Facets 项目地址: https://gitcode.com/gh_mirrors/fac/facets Ruby Facets是Ruby编程语言中首屈一指的通用方法扩展和标准功能补充集合,它为Ruby内置类和模块提…

阅读更多
普冉PY32F0驱动1602LCD避坑指南:5V供电、I2C地址与PCF8574模块的那些事儿
2026/6/15 2:57:56

普冉PY32F0驱动1602LCD避坑指南:5V供电、I2C地址与PCF8574模块的那些事儿

普冉PY32F0驱动1602LCD实战避坑:电压匹配、I2C寻址与初始化时序全解析 当嵌入式开发者第一次将PY32F0系列MCU与1602液晶屏通过PCF8574模块连接时,往往会遭遇三个经典难题:屏幕毫无反应、显示乱码、或是I2C通信失败。这些问题背后隐藏着硬件设…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/14 0:57:30

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/14 0:57:30

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/14 0:57:30

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
TEKLauncher:终极ARK模组管理与性能优化解决方案
2026/6/15 0:57:55

TEKLauncher:终极ARK模组管理与性能优化解决方案

TEKLauncher:终极ARK模组管理与性能优化解决方案 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher 你是否为ARK: Survival Evolved复杂的模组管理和服务器连接问题而烦恼&#xf…

阅读更多
如何3分钟免费解锁Cursor Pro:终极AI编程助手破解方案
2026/6/15 0:57:55

如何3分钟免费解锁Cursor Pro:终极AI编程助手破解方案

如何3分钟免费解锁Cursor Pro:终极AI编程助手破解方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tri…

阅读更多
21.2 mcp-server-chart 图表化作用
2026/6/15 0:57:55

21.2 mcp-server-chart 图表化作用

如何检查 langchain_mcp_adapters 版本和 antv/mcp-server-chart 安装 1. 检查 langchain_mcp_adapters 版本 在终端(确保已激活虚拟环境)中运行: pip show langchain_mcp_adapters输出示例: Name: langchain-mcp-adapters Ve…

阅读更多
GIT修改用户名
2026/6/14 11:53:59

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/15 2:21:34

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/14 15:49:58

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多