MySQL授权用户及密码恢复设置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

MySQL密码恢复及设置
1.停止MySQL服务程序。
2.跳过授权表启动MySQL服务程序
skip-grant-tables(添加在配置文件)
3.重设root密码(更新user表记录)
4.以正常方式重启MySQL服务程序

例:
1.恢复数据库管理员密码(操作系统管理员有权限修改)
#systemctl  stop  mysqld
#vim /etc/my.cnf
[mysqld]
...
skip-grant-tables
...
#systemctl  start  mysqld
#mysql
mysql> update  mysql.user   set  authentication_string=password("新密码") where  user="root"  and host="localhost";
mysql> flush  privileges; (更新)
mysql> quit;

例:
2.恢复数据库管理员密码(操作系统管理员有权限修改)
#find / -name "validate_password.so" (查看模块)
#vim /etc/my.cnf
[myslqd]
...
plugin-load=validate_password.so #加载模块
validate_password=FORCE_PLUS_PERMANENT #永久启用模块
validate_password_policy=0  #只验证密码长度
validate_password_length=6  #指定密码长度
..
#systemctl restart mysqld

例:
3.修改数据库管理员本机登录密码(操作系统管理员有权限修改)
#mysqladmin  -hlocalhost  -uroot  -p  password  "新密码" 
Enter password: #输入旧密码

创建授权
MySQL授权库和表信息

授权库mysql,主要的几个表:
1.user表,存储授权用户的防护权限。
2.db表,存储授权用户对数据库的访问权限。
3.tables_priv表,存储授权用户对表的访问权限。
4.columns_priv表,存储授权用户对字段的访问权限。

GRANT 配置授权
格式:GRANT 权限列表... ON 库名.表名 TO 用户名@'客户端地址' IDENTIFIED BY '密码' WITH GRANT OPTION;
-[WITH GRANT OPTION]被授权用户是否有授权权限(可选项)

注意事项:
1.当库名.表名为“.”时,匹配所有库所有表。
2.授权设置存放在mysql库的user表。

授权列表:
all    所有权限
usage  没有权限
selec  查看权限
update 修改权限
delect 删除权限
insert 写入权限
drop   删除权限
...

库名.表名:
库名.*   //库下的所有表
*.*      //所有库下的所有表

客户端地址:
% //匹配所有主机
192.168.1.% //匹配指定的一个网段
192.168.1.1 //匹配指定IP地址的单个主机
%.baidu.com //匹配一个DNS区域
www.baidu.com //匹配指定域名的单个主机

例:
1.新建用户mydba,对所有库、表有完全权限,允许从任何地方访问,密码设置为'123456',允许用户为其他用户授权。
mysql>grant all on  *.*  to mydba@'%' identified  by '123456' with grant option;

例:
2.授权dachui用户,允许从本机访问,允许对userdb库的任何表有查询、更新、插入、删除权限,密码为‘123456’。
mysql>grant select,insert,update,delect  on userdb.*  to  dachui@'localhost' identified by '123456';

授权用户修改自己的密码:SET PASSWORD=PASSWORD('新密码');
管理员可重设其他用户的密码:SET PASSWORD FOR 用户名@'客户端地址'=PASSWORD('新密码');

撤销用户授权
格式:REVOKE 权限列表 ON 库名.表名 FROM 用户名@'客户端地址';

例:
mysql>revoke insert,select on  userdb.*  from  dachui@'localhost';  
mysql>show  grants for  dachui@'localhost'\G;

删除授权用户: drop mysql.user 用户名@"客户端地址";



     本文转自夜流璃雨 51CTO博客,原文链接:http://blog.51cto.com/13399294/2068614,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
125 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
167 2
|
1月前
|
关系型数据库 MySQL 数据库
MySQL事务隔离级别及默认隔离级别的设置
在数据库系统中,事务隔离级别是一个关键的概念,它决定了事务在并发执行时如何相互隔离。MySQL提供了四种事务隔离级别,每种级别都解决了不同的并发问题。本文将详细介绍这些隔离级别以及MySQL的默认隔离级别。
|
1月前
|
存储 关系型数据库 MySQL
【赵渝强老师】解决MySQL丢失root用户密码
本文介绍了MySQL数据库中用户密码存储的变化,以及如何通过特殊方法重置root用户的密码。从MySQL 5.7版本开始,密码字段由“password”改为“authentication_string”。文章详细列出了重置密码的步骤,并提供了相关代码示例和视频教程。
|
2月前
|
关系型数据库 MySQL 数据库连接
MySQL 表整行数据唯一性设置
MySQL 表整行数据唯一性设置
67 2
|
2月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
329 1
|
2月前
|
druid 关系型数据库 MySQL
开发指南048-mysql设置
如果链接的是mysql设置,需要做如下配置
|
3月前
|
安全 关系型数据库 MySQL
Navicat工具设置MySQL权限的操作指南
通过上述步骤,您可以使用Navicat有效地为MySQL数据库设置和管理用户权限,确保数据库的安全性和高效管理。这个过程简化了数据库权限管理,使其既直观又易于操作。
478 4
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
89 8
|
2月前
|
SQL 关系型数据库 MySQL
MySQL设置表自增步长
MySQL设置表自增步长
132 0