首页 > 数据库 >MYSQL基础操作和用户授权管理

MYSQL基础操作和用户授权管理

时间:2022-11-27 17:58:13浏览次数:40  
标签:文件 数据库 MYSQL 用户 密码 mysql 授权 PASSWORD 数据

一.数据库概述

1.1数据表对应的文件

MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,
用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“. frm"," .MYD"和“.MYI"。

 

 

 

MYD"文件是MyISAM存储引擎专用,存放MyISAM表的数据。
每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm" 文件在一起。

”.MYI"文件也是专属于MyISAM 存储引擎的,主要存放MyISAM表的索引相关信息。对于MyISAM
存储来说,可以被cache的内容主要就是来源于“.MYI"文件中。每一个MyISAM表对应一个“.MYI"文件,存放于位置和“. frm"以及“.MYD”一样。

MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件( frm, myd,myi)。每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI文件中。

另外还有“. ibd"和ibdata 文件,这两种文件都是用来存放Innodb数据的,之所以有两种文件来存放Innodb的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。
独享表空间存储方式使用“. ibd"文件来存放数据,且每个表一个“.ibd"文件,文件存放在和MyISAM数据相同的位置。如果选用共享存储表空间来存放数据,则会使用ibdata文件来存放,所有表共同使用一个(或者多个,可自行配置) ibdata 文件。

1.2数据库常见的数据类型

类型 描述
int 整型,用于定义整数类型的数据 
float 单精度浮点4字节32位,准确表示到小数点后六位
double 双精度浮点8字节64位
char 固定长度的字符类型 ,用于定义字符类型数据
varchar 可变长的字符类型
text 文本
image 图片
decimal(5,2) 5个有效长度数字,小数点后面有2位--> 指定长度数组

注意

  • char如果存入数据的实际长度比指定长度要小,会补空格至指定长度;
  • 如果存入的数据的实际长度大于指定长度;
  • 低版本会被截取,高版本会报错。

二.数据库的基本操作

1.1SQL语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

1.2SQL语句的分类

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据

DQL:数据查询语言,用于从数据表中查找符合条件的数据记录

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

1.3进入数据库的方法

①登录本地mysql

mysql
# 或者
mysql -u root
# 或者
mysql -u root -p

 

②登录远程mysql

#指定主机名和端口号,有时也没有端口号
mysql -h 主机 -P 端口 -u 用户名 -p

 

 ③数据库的权限验证

安装MySql 设置my.ini配置文件的时候,常常会添加
skip-grant-tables  #跳过数据库权限验证
这常常导致一个现象,本地连接数据库可以使用任意账号或者密码。
但是去掉之后,又常常会出现ERROR 1045等问题。
这可能是因为数据库中用户密码的问题。所以我们可以跳过数据权限验证,重新设置一下

1.4DDL:数据定义语言

用于创建数据库对象,如库、表、索引等

create:创建
drop:删除
alter:修改

1.4.1查看数据库

 1.4.2创建新的数据库

CREATE DATABASE 数据库名;  //创建数据库

  CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);   //创建数据表

 

 1.4.3查看数据结构

USE 数据库名;   //能对数据该数据库进行操作
SHOW TABLES;  //查看数据库中的表信息

DESCRIBE [数据库名] 表名  //显示数据表的结构
desc 表名 //也可以使用desc查看表结构

 

三.数据库用户管理和授权

3.1数据库用户管理

3.1.1新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

'用户名':指定将创建的用户名
'来源地址':指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
'密码':若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密
若使用加密密码,需要先使用SELECT PASSWORD('密码');获取密文,再在语句中添PASSWORD '密文'; 若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用) CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456'; SELECT PASSWORD('abc123'); //获取加密密码 CREATE USER 'user2'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'; //使用加密密码

 

3.1.2查看用户信息

创建后的用户保存在mysql 数据库的user表里

USE mysql;
SELECT User,authentication_string,Host from user;

 

3.1.3重命名指定

RENAME USER 'zhangsan'@'localhost' TO 'lisi'@'localhost';

 

3.1.4删除用户

DROP USER 'lisi'@'localhost' ;

 

3.1.5修改当前密码

SET PASSWORD = PASSWORD('abc123');

 

3.1.6修改其他用户密码

SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123T');

 

3.1.7忘记root密码的解决办法

①修改/etc/my.cnf 配置文件,免密登陆mysql
vim /etc/my.cnf
[mysqld]
skip-grant-tables #添加,使登录mysql不使用授权表

systemctl restart mysqld
mysql #直接登录

②然后使用SQL语句修改密码
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';

FLUSH PRIVILEGES;
quit
mysql -u root -pabc123
注意:最后再把/etc/my.cnf 配置文件里的skip-grant-tables 删除,并重启mysql服务

3.2数据库授权

3.2.1grant 提权

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select, insert,update“

3.2.2授权用户权限是all privilege。

all privilege权限如下:

all  //代表所有权限
insert(插入数据) select (查询数据) update (更新表的数据) delete(删除表中数据) create (创建库,表) drop(删除库,表) refernces index(建立索引) alter(更改表属性) create temp orary tableslock tables (锁表) execute create view (创建视图) show view(显示视图) create routine(创建存储过程) alter routine(修改存储过程) event(事件) trigger on(创建触发器)

 

 

 

四.总结

  • 对数据库,表的操作(增删改查)
  • 设置mysql配置添加skip-grant-tables ,跳过数据库权限验证,一般用于忘记数据库密码时
  • 对数据用户进行授权,给用户需要的取消,属于数据库安全方面

 

标签:文件,数据库,MYSQL,用户,密码,mysql,授权,PASSWORD,数据
From: https://www.cnblogs.com/suoluo212/p/16918056.html

相关文章

  • MySQL数据库基础
    一、数据库的基本概念数据(Data):描述事务的符号记录包括数字、文字、图形、图像、声音、档案记录以”记录“形式按统一的格式进行存储表:将不同的记录组织在一起用......
  • mysql 进阶篇
    Mysql体系结构分为连接层,服务层,引擎层(索引在这一层),存储层存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的,所以存储引......
  • MySQL创建用户并授权
    转载自:https://blog.csdn.net/blood_Z/article/details/124964642 ============================ MySQL创建用户并授权创建用户使用命令创建#使用CREATECREATE......
  • 用docker配置以mysql为数据源的nacos
    用docker配置以mysql为数据源的nacos需要提前配置好数据库/******************************************//*数据库全名=nacos_config*//*表名称=config_i......
  • MYSQL数据库(索引,事务与存储引擎)
    一、MySQL索引1.1索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地......
  • 用户和组
    用户和组的基本概念概念作用用户名用户的名称(区分大小写)密码使用用户所需的密码用户标识(UID)表示用户的数字标识符组群标识(GID)表示组的数字标识......
  • MySQL数据库管理 _
    一、MySQL数据库管理1.1库和表 数据库–>数据表–>行(记录):用来描述一个对象的信息_______________列(字段):用来描述对象的一个属性常用的数据类型 int:整型float:......
  • MySQL数据库用户管理以及数据库用户授权
    一、用户管理1.1新建用户 CREATEUSER'用户名'@'来源地址'[IDENTIFIEDBY[PASSWORD]'密码']; ‘用户名’:指定将创建的用户名‘来源地址’:指定新创建的用户可......
  • mySql数据库 forUpdate 实战总结
    悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依......
  • MySQL的概念、编译安装
    一.数据库的基本概念1、数据(Data)•描述事物的符号记录•包括数字,文字,图形,图像,声音,档案记录等•以“记录”形式按统一的格式进行存储2、表•将不同的记录组织在一......