DCL(Data Control Language)
使用MySQL数据库默认使用的都是 root 用户,超级管理员,拥有全部的权限。
在一个公司里面的数据库服务器上面可能同时运行这很多个项目的数据库,应该根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
mysqld 是 MySQL 的主程序,服务器端。mysql 是 MySQL的命令行工具,客户端。
一、创建用户
1、语法
1 | CREATE USER '用户名' @ '主机名' IDENTIFIED BY '密码' ; |
2、关键字说明
关键字 | 说明 |
'用户名' | 将创建的用户名 |
'主机名' | 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost,如果想让该用户可以 从任意远程主机登陆,可以使用通配符% |
'密码' | 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器 |
3、案例
① 创建 user1 用户,只能在 localhost 这个服务器登录 MySQL 服务器,密码为 123
1 | create user 'user1' @ 'localhost' identified by '123' ; |
② 创建 user2 用户可以在任何电脑上登录 mysql 服务器,密码为 123
1 | create user 'user2' @ '%' identified by '123' ; |
注意:创建的用户名都在 mysql 数据库的 user 表中可以查看到,密码经过了加密。
二、删除用户
1、语法
1 | DROP USER '用户名' @ '主机名' ; |
2、案例
删除 user2
1 | drop user 'user2' @ '%' ; |
三、修改用户密码
1、修改管理员密码
(1)语法
1 | mysqladmin -uroot -p password 新密码 |
(2)具体操作
① 将 root 管理员的新密码改成 123456
② 要求输入旧密码
③ 使用新密码登录
2、修改普通用户密码
(1)基本语法
1 | update user set password = password( '新密码' ) where user = '用户名' set password for '用户名' @ '主机名' = password( '新密码' ); |
注意:需要在登录 MySQL 的情况下操作,新密码要加单引号。password 是一个内置函数,对密码进行加密。
(2)具体操作
① 将 ‘user1’@‘localhost’ 的密码改成 ‘666666’
② 使用新密码登录,老密码无法使用
3、MySQL 中忘记了 root 用户的密码?
(1)使用管理员运行 cmd --> net stop mysql 停止 mysql 服务
(2)在cmd中使用无验证方式启动 mysql 服务:
1 | mysqld --skip-grant-tables |
(3)再打开新的 cmd 窗口,直接输入 mysql 命令,敲回车,就可以登录成功。
(4)然后使用 mysql 数据库
1 | user mysql; |
(5)重新设置 root 用户的密码
1 | update user set password = password( '新密码' ) where user = 'root' ; |
(6)关闭上面的两个窗口
(7)打开任务管理器,手动结束 mysqld.exe 的进程
(8)以管理员打开 cmd ,重新启动 mysql 服务
1 | net start mysql |
(9)使用新密码登录
1 | mysql -uroot -proot |
四、查询用户
MySQL 数据库的用户信息都存放在 mysql 数据库中的 user表
查询所有用户语法:
1 2 | user mysql; select * from user; |
注意:通配符,% 表示可以在任意主机使用用户登录数据库。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器