Linux下MySQL用户管理、权限、密码

一、原理

MySQL的用户管理实质上是对用户表的管理,系统中的数据库mysql存在一张用户表(user),所有的用户都在该表内,对用户的管里也就是对该表进行增删查改的操作。

show databases;

如图中的mysql数据库,所有的用户信息都存在这个数据内的user表中。

use mysql;

select host,user,authentication_string from user;

进入该数据库后,查看user表中的内容:

如图显示了当前系统下的所有用户信息,root就是超级用户,剩下两个是系统自带的,由于没有创建普通用户,所有只有此三项。

字段含义:

host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
user: 用户名
authentication_string: 用户密码,通过password函数加密后的

二、创建普通用户

create user '用户名'@'登陆主机/ip' identified by '密码';

'登陆主机/ip' 可选项:

localhost:表示只能在本主机进行登录。

指定的ip地址:表示只允许特定ip的主机才能登录。

% :表示允许远端登录,可以在任意主机上进行登录。(建议少用)

注意:如果创建的时候报错,先执行flush privileges; 刷新一下再进行创建。

三、用户登录

本机登录:

mysql -u用户名 -p;

远程登录:

远程连接其他服务器下的mysql。需要对方的mysql下的用户登录主机设置的是指定ip或%,才能远程登录。

远程登录指令:

mysql -u用户名 -h需要连接的ip -p

四、删除用户

方式1. 使用对表的删除语句删除

DELETE FROM mysql.user WHERE user = 'username' AND host = 'localhost';

方式2.  使用DROP USER语句:

drop user '用户名'@'localhost';

 五、修改密码

方法1. 

只能给本用户自己设置密码。

set password=password('新的密码');

方法2. 

root用户修改指定用户的密码

set password for '用户名'@'主机名'=password('新的密码');

 修改密码后需要使用flush privileges;刷新一下。

root忘了密码重置

方法:先设置免密登录,登录后,在重新设置密码。

1. # vim /etc/my.cnf

2. 在[mysqld]下添加 skip-grant-tables

这时就可以无密码登录。

3. # mysql -uroot -p

4. 输入密码的时候直接回车

5. 进入后输入 # flush privileges;

6. 设置密码,指令:

set password for root@localhost=password(‘你的密码’);

这样退出后就可以使用密码登录了。

最后记得把skip-grant-tables给注释了

如果是普通账户密码忘了,可以直接在root下进行重置。

六、权限赋予

权限    意义
ALL [PRIVILEGES] 设置除GRANT OPTION之外的所有简单权限
ALTER 允许使用ALTER TABLE
ALTER ROUTINE 更改或取消已存储的子程序
CREATE允许使用CREATE TABLE
CREATE USER允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES
CREATE VIEW允许使用CREATE VIEW
DELETE  允许使用DELETE
DROP允许使用DROP TABLE
INDEX允许使用CREATE INDEX和DROP INDEX
INSERT 允许使用INSERT
SELECT 允许使用SELECT
SHOW DATABASES   SHOW DATABASES显示所有数据库
SHOW VIEW 允许使用SHOW CREATE VIEW
SHUTDOWN  允许使用mysqladmin shutdown
UPDATE 允许使用UPDATE
GRANT OPTION   允许授予权限

权限赋予语句:

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码'];
// grant select on ...
// grant select, delete, create on ...
// grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限

*.* :  代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
库.* :  表示某个数据库中的所有数据对象(表,视图,存储过程等)
identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

权限赋予后需要刷新才能使用:flush privileges;
例:

赋予zhangsan关于test数据库的select所有表的权限。

grant select on test.* to 'zhangsan'@'localhost';

 权限查看:

show grants for 'username'@'localhost';

查看某用户被赋予的权限。

七、权限收回

指令:

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

例:

revoke all on test.* from 'zhangsan'@'localhost';

回收张三关于test数据库的所有权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/335826.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 用队列实现栈

题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并…

2024/1/20 并查集

目录 并查集关键代码 亲戚 村村通 团伙(新知识) 并查集关键代码 返回祖宗节点路径压缩: int find(int x) {if(f[x]!x) f[x]find(f[x]);return f[x]; } 合并: void make(int x,int y) {int f1find(f[x]);int f2find(f[y]);…

69.使用Go标准库compress/gzip压缩数据存入Redis避免BigKey

文章目录 一:简介二:Go标准库compress/gzip包介绍ConstantsVariablestype Headertype Reader 三:代码实践1、压缩与解压工具包2、单元测试3、为何压缩后还要用base64编码 代码地址: https://gitee.com/lymgoforIT/golang-trick/t…

图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 deeplab系列算法概述 deeplabV3 VOC分割实战1 deeplabV3 VOC分割实战2 deeplabV3 VOC分割实战3 dee…

C#中chart控件

C#中chart控件 图表的5大集合 例子 第一步:创建工程 放入chart控件 series集合 选择图标类型 选择绘制曲线的宽度和颜色。 显示数据标签 Title集合 添加标题 调整标题字体:大小和颜色 CharsArea集合 对坐标轴进行说明 设置间隔 设置刻度…

使用Ultimate-SD-Upscale进行图片高清放大

之前我们介绍过StableSR进行图片高清放大,如果调的参数过大,就会出现内存不足的情况,今天我们介绍另外一个进行图片高清放大的神器Ultimate-SD-Upscale,他可以使用较小的内存对图像进行高清放大。下面我们来看看如何使用进行操作。…

Spark读取kafka(流式和批数据)

spark读取kafka(批数据处理) # 按照偏移量读取kafka数据 from pyspark.sql import SparkSessionss SparkSession.builder.getOrCreate()# spark读取kafka options {# 写kafka配置信息# 指定kafka的连接的broker服务节点信息kafka.bootstrap.servers: n…

无法访问云服务器上部署的Docker容器

说明:记录一次无法访问云服务器上部署的Docker容器的问题。 问题描述 某次,我在云服务器上,使用Docker运行了一个Nginx容器,用公网IP怎么也访问不到。这种情况博主也算有经验,可以从以下几个方面去排查: …

舵机使用总结

文章目录 1 舵机简介2 注意事项3 编写驱动程序3.1 使用STM32作为控制器3.1.1 计算高电平对应程序中的取值范围3.1.2 编写控制程序 1 舵机简介 舵机使用PWM控制,周期为20ms,通过改变高电平占空比来驱动,高电平通常为1~2ms( 或 0.5 …

RabbitMQ系列之入门级

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《RabbitMQ系列之入门级》。🎯&#x…

YOLOv8全网首发:新一代高效可形变卷积DCNv4如何做二次创新?高效结合SPPF

💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,与YOLOv8 SPPF高效结合 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡💡💡全网独家首发创新(原创),适合paper !!! 💡💡💡…

AOI与AVI:在视觉检测中的不同点和相似点

AOI(关注区域)和AVI(视觉感兴趣区域)是视觉检测中常用的两个概念,主要用于识别和分析图像或视频中的特定区域。虽然这两个概念都涉及到注视行为和注意力分配,但它们在定义和实际应用等方面有一些差异。 AOI…

x86-x64汇编语言、反汇编知识和IDA

x86-x64汇编语言 基础知识 x86寄存器: 通用寄存器:EAX, EBX, ECX, EDX, ESI, EDI 栈顶指针寄存器:ESP 栈底指针寄存器:EBP 指令计数器:EIP 段寄存器:CS, DS, ES, FS, GS, SS x86-64寄存器:&a…

2.【C语言】(函数指针||sizeof||笔试题)

0x01.函数指针 void test(const char* str) {printf("%s\n", str); }int main() {void (*pf)(const char*) test;//pf是函数指针变量void (*pfarr[10])(const char*);//pfarr是存放函数指针的数组void (*(*p)[10])(const char*) &pfarr;//p是指向函数指针数组…

Leetcoder Day10|栈与队列part02(栈的应用)

语言:Java/C 目录 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值 今日总结 20. 有效的括号 给定一个只包括 (,),{,},[,] 的字符串,判断字符串是否有效。 有效字…

WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程。 2 数据驱动与jmeter接口测试 我们已经简单介绍了接口测试参数录入及测试执行的过程&#xff0…

Unity3D Pico VR 手势识别物体交互 适配 MRTK3

当前Pico已经支持手势识别了,但是提供的PICO Unity Integration SDK 中是没有手势和物体交互的功能,Unity XR Interaction Toolkit提供的手势识别物体交互对 Quest适配的挺好的,Pico 当前只能用指尖点触还不能对物体进行抓握以及手势控制射线…

数据结构一:算法效率分析(时间复杂度和空间复杂度)-重点

在学习具体的数据结构和算法之前,每一位初学者都要掌握一个技能,即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率。所谓算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,…

开发实践8_project

要求: 使用Restful对Chaos模型作基本操作。 结果: post 3 组数据后,get 查询如下: put修改后get: delete pk3之后get: 代码: python manage.py startapp pro8_app 注册 总路由 // path(pr…

免费200万Tokens 用科大讯飞API调用星火大模型服务

简介 自ChatGPT火了之后,国内的大模型发展如雨后春笋。其中的佼佼者之一就是科大讯飞研发的星火大模型,现在大模型已经更新到V3 版本,而且对开发者也是相当友好,注册就送200万tokens,讯飞1tokens 约等于 1.5 个中文汉字 或者 0.8 个英文单词…