概述
为什么要使用数据库? 答:实现数据的持久化。
数据库存储类型多样,存储量大。由于其他文件等介质。
概念
DB:database(数据库),保存数据的仓库,本质是一个文件系统。
DBMS:数据库管理系统,常说的Mysql数据库,管理软件。
SQL:结构化查询语言。
通过SQL,使用DBMS管理DB实现数据的增删查改。
常见的DBMS:
-
Oracle -
Mysql -
SQL Server -
Sqlite -
Redis
关系型数据库RDBMS:Mysql是开源的关系型数据库管理系统。MariaDB是Mysql的分支。 以行和列的形式存储数据,构成表,多个表构成数据库。关系模型表示。
MYsql优点:
-
开源免费,使用成本低 -
性能卓越,服务稳定 -
体积小,使用简单,易于维护 -
社区活跃...
关系型数据库设计规则
表,记录,字段。
表的关联关系:
-
一对一 -
一对多 -
多对多 -
自我关联
基本名词定义
data:数据
database:数据库
dbms(database management system)数据库管理系统
rdbms(relational database management system)关系型数据库管理系统
table:表
field:字段
column:列
attribute:属性
type:类型
key:键值
index:索引
view:视图
sp(stored procedure):存储过程
trigger:触发器
primary key:主键
forerign key:外键
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
# 复制进程文件到目录下
cp mysqld.service /usr/lib/systemd/system/
# 刷新
systemctl-daemon-reload
# 修改默认密码
alter user 'root'@'localhost' identified by 'WZS134125'
# 迁移data目录
mv data /mnt
# 修改my.cnf
datadir=/mnt
# 通过sql查看内置变量
show VARIABLES LIKE '%bind_address%';
授权认证
mysql权限认证由用户名和主机名组成类似: root@localhost
root@localhost和root@192.168.131.101是两个不同的用户
# 创建用户,设置密码,通过create user
create user chuck@'localhost' identified by 'WZS134125';
# 授予权限,grant,revoke
grant all privileges on *.* to chuck@'localhost'; # 授予所有权限
GRANT SELECT, INSERT ON database_name.table_name TO user_name; # 授予特定权限
GRANT SELECT, INSERT ON database_name.table_name TO role_name; # 授予角色的权限
# 查看权限
show grants for chuck@'localhost';
# 撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM user_name; # 撤销所有权限
REVOKE SELECT, INSERT ON database_name.table_name FROM user_name; # 撤销特定权限
REVOKE ALL PRIVILEGES ON database_name.* FROM role_name; # 撤销角色权限
# 针对字段或者列进行限制
GRANT SELECT(name)ON database_name.table_name TO user_name; # 针对特定字段进行控制
权限级别:
-
全局性,针对数据库示例所有的数据库权限控制 -
数据库级别,针对某些数据库的权限 -
数据库对象级别,针对特定的修改,查询,更新或者某个字段和列的权限
概述: 我们需要存储的一些有价值的数据如:姓名、年龄、职业、项目、薪资等数据以一种格式化的数据存储在数据表中,多个关联的表存储在同一个数据库中,使用数据库管理软件进行查询、修改、删除操作,实际物理存储路径在服务器的目录上。
本文由 mdnice 多平台发布