2023年7月4日发(作者:)
第一章 数据库简介与安装
1.
2.
3.
4.
5.
数据库系统概述
数据存储方式
数据模型
数据库系统的构成
MySQL数据库的安装
数据库系统概述
什么是数据库
数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在Oracle、SQLServer、MySQL等诸多优秀的数据库。
数据存储方式
数据如何存储
想一想:
存储数据的方式有哪些? 1. 用大脑记住数据 2. 写在纸上 3. 写在计算机内存中 4.
用U盘存储数据 5. 用数据库存储数据
数据存储分为三个阶段
1. 人工管理阶段 2. 文件系统阶段 3. 数据库系统阶段
数据库能做什么
1. 存储大量数据,方便检索和访问
2. 保持数据信息的一致、共享和安全
3. 通过组合分析,产生新的有价值的信息
现在大部分的管理系统和软件都需要使用数据库来存储数据。在开发过程中,数据库已经成为必不可少的一部分
数据模型
什么是数据模型
数据模型是指数据库中数据的存储方式,是数据库系统的基础。 数据模型分类
1. 层次模型
2. 网状模型
3. 关系模型
数据库的类型是根据数据模型来划分的,所以数据库也可以被分为层次式数据库、网状式数据库、关系式数库。
现在的数据库分类
1. 关系型数据库
2. 非关系型数据库(NOSQL)
关系型数据库的特点
*
数据以表格的形式出现 * 每行为各种记录的名称 * 每列为记录名称所对应的数据域
* 许多的行和列组成一张数据表 * 若干的数据表组成一个数据库
table 可以很好的解决复杂的查询需求,以及事务的支持。 关系型数据库典型产品:mysql,sql server,oracle等
非关系型数据库的特点
非关系型数据库也被称为 NOSQL 数据库, NOSQL 的本意是 NOT ONLY SQL,以键值(key-value)形式存储数据库,NOSQL 是为了高性能,高并发而生的,NOSQL
典型产品: redis, mongodb等
关系数据库系统的构成
数据库技术的出现是为了更加有效地管理和存取大量的 数据资源。简单的讲,数据库技术包括数据库系统、SQL语言、数据库访问技术等。
1. 数据库系统
2. SQL语言
3. 数据库访问技术
常用的关系数据库
如今已经存在很多优秀的商业数据库,如甲骨文(Oracle)公司的Oracle数据库、IBM公司的DB2数据库、微软公司的SQL Server数据库和Access数据库。同时,还有很多优秀的开源数据库,如MySQL数据库、PostgreSQL数据库等。
为什么要使用MySQL
1. MySQL是开放源代码的数据库
2. MySQL的跨平台性
3. 功能强大且使用方便
mysql的版本
1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4. MySQL Cluster CGE 高级集群版,需付费。
MariaDB
MariaDB数据库管理系统是MySQL的一个分支,完全兼容MySQL
MySQL数据库的安装
1. 检测系统是否自带安装mysql
2. 删除系统自带的mysql及其依赖 3.
4.
5.
6.
7.
给CentOS添加rpm源,并且选择较新的源
安装mysql 服务器
启动mysql
查看mysql是否自启动,并且设置开启自启动
mysql安全设置
mysql默认文件目录
1.
2.
3.
4.
5.
数据库目录: /var/lib/mysql/
配置文件:/usr/share/mysql(命令及配置文件)
相关命令:/usr/bin(mysqladmin、mysqldump等命令)
启动脚本:/etc/init.d/(mysqld)
启动参数配置文件:/etc/
mysql文件扩展名
不同的数据库引擎,数据文件的扩展名不同
1. .frm:表示数据表结构,跟数据库存储引擎无关
2. MyISAM引擎
– .myd 即 my data,表数据文件
– .myi 即my index,索引文件
– .log 日志文件
3. InnoDB引擎:表空间数据文件和日志文件
– ibdata文件:共享存储表空间来存放数据
– .ibd文件:每个表一个“.ibd”文件
– ib_logfile:日志文件
mysql的登录与退出
1. 登录: mysql [-u username] [-h host] [-p[password]]
2. 退出:exit
客户端工具
mysqladmin
mysqladmin命令是mysql服务器管理任务的客户端工具,它可以检查mytsql服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。
语法
mysqladmin(选项)(参数)
选项 -h:MySQL服务器主机名或ip地址;
-u:连接MySQL服务器的用户名;
-p:连接MySQL服务器的密码;
--help:显示帮助信息。
参数
管理命令:需要在MySQL服务器上执行的管理命令。
mysqladmin支持下列命令:
create databasename:创建一个新数据库;
drop databasename:删除一个数据库及其所有表;
extended-status:给出服务器的一个扩展状态消息;
flush-hosts:清空所有缓存的主机;
flush-logs:清空所有日志;
flush-tables:清空所有表;
flush-privileges:再次装载授权表(同reload);
kill id,id,...:杀死mysql线程;
password 新口令:将老密码改为新密码;
ping:检查mysqld是否活着;
processlist:显示服务其中活跃线程列表;
reload:重载授权表;
refresh:清空所有表并关闭和打开日志文件;
shutdown:关掉服务器;
status:给出服务器的简短状态消息;
variables:打印出可用变量;
version:得到服务器的版本信息。
修改登录密码
1. mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【输入原来的密码】
2. 修改user用户表
mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=password("test") where user='root';
mysql> exit;
注5.7以后:
authentication_string
3. set password for '用户名'@'IP地址' = Password('新密码'); 创建用户
insert into (Host,User,Password) values
("localhost","test",password("1234"));
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
权限设置
用户权限管理的作用
1. 可以限制用户访问哪些库、哪些表
2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、UPDATE、ALTER等操作
3. 可以限制用户登录的IP或域名
4. 可以限制用户自己的权限是否可以授权给别的用户
所有权限
table
用户授权
创建用户并授权
grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option
•
•
•
all privileges:表示将所有权限授予给用户,还可设置其他权限,如 select,updata等。
on:表示这些权限对哪些数据库和表生效。格式:数据库.表。*代表所有。
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。 •
•
identified by:指定用户的登录密码
with grant option:表示允许用户将自己的权限授权给其它用户
案例:
--授予用户 testuser 在所有主机都有 select 权限(仅对于数据
库 test)
grant select on test.* to 'testuser'@'%' identified by
'123456';
grant select on test.* to 'testuser'@'localhost'
identified by '123456';
--授予用户 testuser 在本地登录具有 update 权限(仅对于数据
库 test)
grant update on test.* to 'testuser'@'localhost';
--授予用户 testuser2 在本地登录具有修改 user 表字段 name,
sex 的权限
grant update(name,sex) on test.'user' to
'testuser2'@'localhost' identified by '123456';
查看权限
•
•
查看当前登录用户的权限
show grants;
查看指定用户
show grants for 'testuser'@'%';
show grants for 'testuser'@'localhost';
撤销权限
revoke all priveleges on test.* from 'testuser'@'%';
删除用户和重命名
当创建一个用户后,该用户会有一个默认权限usage,该权限不能 revoke - 删除
drop user 'testuser'@'%';
•
重命名
rename user 'testuser'@'%' to 'testuser2'@'%';
添加管理员
• 添加额外管理员,system作为管理员,oldsuo为密码
delete from ;
grant all privileges on *.* to system@'localhost'
identified by 'oldsuo' with grant option;
flush privileges;
select user,host from ;
配置文件
配置文件基本参数
[client] #客户端设置
port = 3307 #默认连接端口
socket = /data/mysqldata/3307/ #用于本地连接的
socket套接字
default-character-set = utf8 #编码
[mysqld] #服务端基本设置
port = 3307 MySQL监听端口
socket = /data/mysqldata/3307/ #为MySQL客
户端程序和服务器之间的本地通讯指定一个套接字文件
pid-file = /data/mysqldata/3307/ #pid文件所
在目录
basedir = /usr/local/mysql-5.7.11 #使用该目录
作为根目录(安装目录)
datadir = /data/mysqldata/3307/data #数据文件存
放的目录
tmpdir = /data/mysqldata/3307/tmp #MySQL存放
临时文件的目录
character_set_server = utf8 #服务端默认编码
(数据库级别)
collation_server = utf8mb4_bin #服务端默认
的比对规则,排序规则
user = mysql #MySQL启动
用户
免密登录
[mysqld]
skip-grant-tables 存储引擎
MySQL可以支持多种存储引擎。 最常用存储引擎Myisam和Innodb。mysql 5.5.5以后默认存储引擎为Innodb。
• Innodb:
1. 可靠性要求比较高,或者要求事务;
2. 表更新和查询都相当的频繁;
• Myisam:
1. 做很多统计的计算;
2. 插入不频繁,查询非常频繁;
3. 没有事务和外键;
创建表指定引擎
create table mess (
-> id int(4) not null,
-> ......,
-> ......,
-> ...... -> ) ENGINE=MyISAM CHARSET=utf8;
查看支持引擎和表引擎
show engines; show create table table_name;
修改引擎
ALTER TABLE test ENGINE = INNODB;
ALTER TABLE test ENGINE = MyISAM;
#修改配置文件
在[mysqld]后面添加default-storage-engine=InnoDB
## 总结
• MySQL是一种数据库管理系统。
• MySQL是一种关联数据库管理系统。
• MySQL软件是一种开放源码软件。
• MySQL数据库服务器具有快速、可靠和易于使用的特点。
• MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中。的共享MySQL软件。
有大量可用
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688434396a137297.html
评论列表(0条)