概述

为什么要使用数据库? 答:实现数据的持久化。

数据库存储类型多样,存储量大。由于其他文件等介质。

概念

DB:database(数据库),保存数据的仓库,本质是一个文件系统。

DBMS:数据库管理系统,常说的Mysql数据库,管理软件。

SQL:结构化查询语言。

通过SQL,使用DBMS管理DB实现数据的增删查改。

常见的DBMS:

  • Oracle
  • Mysql
  • SQL Server
  • Sqlite
  • Redis

关系型数据库RDBMS:Mysql是开源的关系型数据库管理系统。MariaDB是Mysql的分支。 以行和列的形式存储数据,构成表,多个表构成数据库。关系模型表示。

MYsql优点:

  • 开源免费,使用成本低
  • 性能卓越,服务稳定
  • 体积小,使用简单,易于维护
  • 社区活跃…

关系型数据库设计规则

表,记录,字段。

表的关联关系:

  • 一对一
  • 一对多
  • 多对多
  • 自我关联

基本名词定义

data:数据

database:数据库

dbms(databasemanagementsystem)数据库管理系统

rdbms(relationaldatabasemanagementsystem)关系型数据库管理系统

table:表

field:字段

column:列

attribute:属性

type:类型

key:键值

index:索引

view:视图

sp(storedprocedure):存储过程

trigger:触发器

primarykey:主键

forerignkey:外键

unique:唯一

performance:性能

tuning:调优

backup:备份

restore:恢复

user:用户

grant:授权

revoke:回收

privilege:权限

select:查询
update:修改
delete:删除
insert:添加

安装步骤

#下载:
官网下载GA版本

#
上传服务器并解压到指定文件:
一般默认/usr/local/mysql

#
配置数据目录和启动用户:
mysql:mysql,数据目录为/usr/local/mysql/data,需手动创建

#
配置文件my.cnf,
进行端口,并发连接,字符集,存储引擎等设置

#
初始化:
cd/www/mysql
./bin/mysqld--defaults-file=/www/mysql/etc/my.cnf--user=mysql--basedir=/www/mysql--datadir=/www/mysql/data--character-set-server=utf8mb4--initialize

#
配置启动方式,通过systemctl或者手动启动
cd/www/mysql-8.0.29/script
#复制进程文件到目录下
cpmysqld.service/usr/lib/systemd/system/
#刷新
systemctl-daemon-reload

#
修改默认密码
alteruser'root'@'localhost'identifiedby'WZS134125'

#
迁移data目录
mvdata/mnt
#修改my.cnf
datadir=/mnt

#
通过sql查看内置变量
showVARIABLESLIKE'%bind_address%';

授权认证

mysql权限认证由用户名和主机名组成类似: root@localhost

root@localhost和root@192.168.131.101是两个不同的用户

#
创建用户,设置密码,通过createuser
createuserchuck@'localhost'identifiedby'WZS134125';

#
授予权限,grant,revoke
grantallprivilegeson*.*tochuck@'localhost';#授予所有权限
GRANTSELECT,INSERTONdatabase_name.table_nameTOuser_name;#授予特定权限
GRANTSELECT,INSERTONdatabase_name.table_nameTOrole_name;#授予角色的权限

#
查看权限
showgrantsforchuck@'localhost';

#
撤销权限
REVOKEALLPRIVILEGESONdatabase_name.*FROMuser_name;#撤销所有权限
REVOKESELECT,INSERTONdatabase_name.table_nameFROMuser_name;#撤销特定权限
REVOKEALLPRIVILEGESONdatabase_name.*FROMrole_name;#撤销角色权限

#
针对字段或者列进行限制
GRANTSELECT(name)ONdatabase_name.table_nameTOuser_name;#针对特定字段进行控制

权限级别:

  • 全局性,针对数据库示例所有的数据库权限控制
  • 数据库级别,针对某些数据库的权限
  • 数据库对象级别,针对特定的修改,查询,更新或者某个字段和列的权限

概述: 我们需要存储的一些有价值的数据如:姓名、年龄、职业、项目、薪资等数据以一种格式化的数据存储在数据表中,多个关联的表存储在同一个数据库中,使用数据库管理软件进行查询、修改、删除操作,实际物理存储路径在服务器的目录上。

本文由 mdnice 多平台发布