MySQL入门——网安基础
- 1. 数据库基本概念
- 2. 数据库类型和常见的关系型数据库
- 2.1 数据库类型
- 2.2 常见的关系型数据库
- 3. MySQL介绍
- 4. MySQL8的安装和卸载
1. 数据库基本概念
1. 数据
所谓数据(Data
)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅仅指狭义上的数字,而是有多种表现形式:字母、文字、文本、图形、音频、视频等。现在计算机存储和处理的数据范围十分广泛,而描述这些数据的符号也变得越来越复杂了。
2. 数据库
数据库(Database
,DB
)指的是以一定格式存放、能够实现多个用户共享、与应用程序彼此独立的数据集合。
3. 数据库管理系统
数据库管理系统(Database Management System
,DBMS
)是用来定义和管理数据的软件。如何科学的组织和存储数据,如何高效的获取和维护数据,如何保证数据的安全性和完整性,这些都需要靠数据库管理系统完成。目前,比较流行的数据库管理系统有:Oracle
、MySQL
、SQL Server
、DB2
等。
4. 数据库应用程序
数据库应用程序(Database Application System
,DBAS
)是在数据库管理系统基础上,使用数据库管理系统的语法,开发的直接面对最终用户的应用程序,如学生管理系统、人事管理系统、图书管理系统等。
5. 数据库管理员
数据库管理员(Database Administrator
,DBA
)是指对数据库管理系统进行操作的人员,其主要负责数据库的运营和维护。
6. 最终用户
最终用户(User
)指的是数据库应用程序的使用者。用户面向的是数据库应用程序(通过应用程序操作数据),并不会直接与数据库打交道。
7. 数据库系统
数据库系统(Database System
,DBS
)一般是由数据库、数据库管理系统、数据库应用程序、数据库管理员和最终用户构成。其中DBMS
是数据库系统的基础和核心。
2. 数据库类型和常见的关系型数据库
2.1 数据库类型
数据库经过几十年的发展,出现了多种类型。根据数据的组织结构不同,主要分为网状数据库、层次数据库、关系型数据库和非关系型数据库四种。目前最常见的数据库模型主要是:关系型数据库和非关系型数据库。
1. 关系型数据库:
关系型数据库模型是将复杂的数据结构用较为简单的二元关系(二维表)来表示,如图所示。在该类型数据库中,对数据的操作基本上都建立在一个或多个表格上,我们可以采用结构化查询语言(SQL
)对数据库进行操作。关系型数据库是目前主流的数据库技术,其中具有代表性的数据库管理系统有:Oracle
、DB2
、SQL Server
、MySQL
等。
学号 | 性名 | 性别 | 年龄 |
---|---|---|---|
2022189 | 张三 | 男 | 16 |
2022188 | 李四 | 男 | 17 |
2022187 | 王五 | 女 | 18 |
关系=二维表
2. 非关系型数据库NOSQL:
NOSQL
(Not Only SQL
)泛指非关系型数据库。关系型数据库在超大规模和高并发的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。NOSQL
数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。常见的非关系型数据库管理系统有Memcached
、MongoDB
,redis
,HBase
等。
2.2 常见的关系型数据库
虽然非关系型数据库的优点很多,但是由于其并不提供SQL
支持、学习和使用成本较高并且无事务处理,所以本文的重点是关系型数据库。下面我们将介绍一下常用的关系型数据库管理系统。
1. Oracle:
Oracle
数据库是由美国的甲骨文(Oracle
)公司开发的世界上第一款支持SQL语言的关系型数据库。经过多年的完善与发展,Oracle
数据库已经成为世界上最流行的数据库,也是甲骨文公司的核心产品。
Oracle
数据库具有很好的开放性,能在所有的主流平台上运行,并且性能高、安全性高、风险低;但是其对硬件的要求很高、管理维护和操作比较复杂而且价格昂贵,所以一般用在满足对银行、金融、保险等行业大型数据库的需求上。
2. DB2:
DB2
是IBM
公司著名的关系型数据库产品。DB2
无论稳定性,安全性,恢复性等等都无可挑剔,而且从小规模到大规模的应用都可以使用,但是用起来非常繁琐,比较适合大型的分布式应用系统。
3. SQL Server:
SQL Server
是由Microsoft
开发和推广的关系型数据库,SQL Server
的功能比较全面、效率高,可以作为中型企业或单位的数据库平台。SQL Server
可以与Windows
操作系统紧密继承,无论是应用程序开发速度还是系统事务处理运行速度,都能得到大幅度提升。但是,SQL Server
只能在Windows
系统下运行,毫无开放性可言。
4. MySQL:
MySQL
是一种开放源代码的轻量级关系型数据库,MySQL
数据库使用最常用的结构化查询语言(SQL
)对数据库进行管理。由于MySQL
是开放源代码的,因此任何人都可以在General Public License
的许可下下载并根据个人需要对其缺陷进行修改。
由于MySQL
数据库体积小、速度快、成本低、开放源码等优点,现已被广泛应用于互联网上的中小型网站中,并且大型网站也开始使用MySQL
数据库,如网易、新浪等。
3. MySQL介绍
MySQL
数据库最初是由瑞典MySQL AB
公司开发,2008年1月16号被Sun
公司收购。2009年,SUN
又被Oracle
收购。MySQL
是目前IT行业最流行的开放源代码的数据库管理系统,同时它也是一个支持多线程高并发多用户的关系型数据库管理系统。MySQL
之所以受到业界人士的青睐,主要是因为其具有以下几方面优点:
1. 开放源代码:
MySQL
最强大的优势之一在于它是一个开放源代码的数据库管理系统。开源的特点是给予了用户根据自己需要修改DBMS
的自由。MySQL
采用了General Public License
,这意味着授予用户阅读、修改和优化源代码的权利,这样即使是免费版的MySQL
的功能也足够强大,这也是为什么MySQL
越来越受欢迎的主要原因。
2. 跨平台:
MySQL
可以在不同的操作系统下运行,简单地说,MySQL
可以支持Windows
系统、UNIX
系统、Linux
系统等多种操作系统平台。这意味着在一个操作系统中实现的应用程序可以很方便地移植到其他的操作系统下。
3. 轻量级:
MySQL
的核心程序完全采用多线程编程,这些线程都是轻量级的进程,它在灵活地为用户提供服务的同时,又不会占用过多的系统资源。因此MySQL
能够更快速、高效的处理数据。
4. 成本低:
MySQL
分为社区版和企业版,社区版是完全免费的,而企业版是收费的。即使在开发中需要用到一些付费的附加功能,价格相对于昂贵的Oracle
、DB2
等也是有很大优势的。其实免费的社区版也支持多种数据类型和正规的SQL查询语言,能够对数据进行各种查询、增加、删除、修改等操作,所以一般情况下社区版就可以满足开发需求了,而对数据库可靠性要求比较高的企业可以选择企业版。
另外,PHP
中提供了一整套的MySQL
函数,对MySQL
进行了全方位的强力支持。
总体来说,MySQL
是一款开源的、免费的、轻量级的关系型数据库,其具有体积小、速度快、成本低、开放源码等优点,其发展前景是无可限量的。
社区版与企业版主要的区别是:
1)社区版包含所有MySQL
的最新功能,而企业版只包含稳定之后的功能。换句话说,社区版可以理解为是企业版的测试版。
2)MySQL
官方的支持服务只是针对企业版,如果用户在使用社区版时出现了问题,MySQL
官方是不负责任的。
4. MySQL8的安装和卸载
1. MySQL的版本:
近期主要历史版本有5.0/5.1/5.5/5.6/5.7,目前最新版本是MySQL8
。6.0曾经是个内部试验版本,已取消了。
MySQL8.0
的版本历史。
1)2016-09-12第一个DM(development milestone
)版本8.0.0发布;
2)2018-04-19第一个GA(General Availability)
版本开始,8.0.11发布;
3)2018-07-27 8.0.12GA发布;
4)2018-10-22 8.0.13GA发布;
5)2019-01-21 8.0.14GA发布;
6)2019-02-01 8.0.15GA发布;
7)最新的版本是8.0.18,2019年10月14日正式发布;
8)…后续更新。
2. 官方下载地址:
https://dev.mysql.com/downloads/windows/installer/8.0.html
3. 安装过程:
1)双击MySQL安装文件mysql-installer-community-8.0.18.0.msi
,出现安装类型选项。
Developer Default
:开发者默认;Server only
:只安装服务器端;Client only
:只安装客户端;Full
:安装全部选项;Custom
:自定义安装。
2)选择,然后继续:
3)进入产品配置向导,配置多个安装细节,点击Next按钮即可。
4)高可靠性High Availability
,采用默认选项即可。
Standalone MySQL Server/Classic MySQL Replication
:独立MySQL
服务器/经典MySQL复制;InnoDB Cluster:InnoDB
集群。
5)类型和网络Type and Networking
,采用默认选项即可。记住MySQL
的监听端口默认是3306
。
6)身份验证方法Authentication Method
,采用默认选项即可。
7)账户和角色 Accounts and Roles
。MySQL管理员账户名称是root
,在此处指定root
用户的密码。还可以在此处通过Add User
按钮添加其他新账户,此处省略该操作。
8)Windows
服务:Windows Service
。
Configure MySQL Server as a Windows Service
:给MySQL服务器配置一个服务项。Windows Service Name
:服务名称,采用默认名称MySQL80即可。Start the MySQL at System Startup
:系统启动时开启MySQL服务
9)Apply Configuration
:点击Execute
按钮执行开始应用这些配置项。
Writing configuration file
:写配置文件;Updating Windows Firewall rules
:更新Windows
防火墙规则;Adjusting Windows services
:调整Windows
服务;Initializing database
:初始化数据库;Starting the server
: 启动服务器;Applying security setting
:应用安全设置;Updating the Start menu link
:更新开始菜单快捷方式链接。
如果配置出错,查看右侧的
log
,查看对应错误信息。
执行完成后,如下图所示。单击Finish
完成安装,进入产品配置环节。
10)产品配置Product Configuration
到此结束:点击Next
按钮。
11.安装完成Installation Complete
。点击Finish
按钮完成安装。
4. 查看MySQL的安装结果:
1)安装了Windows Service
:MySQL80,并且已经启动。
2)安装了MySQL软件。安装位置为:C:\Program Files\MySQL
。 (MySQL文件下放的是软件的内容)
3)安装了MySQL数据文件夹,用来存放MySQL基础数据和以后新增的数据。安装位置为C:\ProgramData\MySQL\MySQL Server 8.0
。 (ProgramData文件夹可能是隐藏的,显示出来即可) (MySQL文件下的内容才是真正的MySQL中数据)
4)在MySQL数据文件夹中有MySQL的配置文件:my.ini
。它是MySQL数据库中使用的配置文件,修改这个文件可以达到更新配置的目的。以下几个配置项需要大家特别理解:
port=3306
:监听端口是3306basedir="C:/Program Files/MySQL/MySQL Server 8.0/"
:软件安装位置datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
:数据文件夹位置default_authentication_plugin=caching_sha2_password
:默认验证插件default-storage-engine=INNODB
:默认存储引擎- (这些内容在Linux下可能会手动更改)
5. MySQL登录,访问,退出操作:
1)登录:
访问MySQL服务器对应的命令:mysql.exe
,位置:C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql.exe
需要带参数执行,所以直接在图形界面下执行该命令会自动结束。
打开控制命令台:win+r
执行mysql.exe
命令的时候出现错误:
需要配置环境变量path
:
注意:控制命令台必须重启才会生效。
登录的命令:mysql -hlocalhost -uroot –p
mysql
:bin
目录下的文件mysql.exe
。mysql
是MySQL
的命令行工具,是一个客户端软件,可以对任何主机的mysql
服务(即后台运行的mysqld
)发起连接。-h
:host
主机名。后面跟要访问的数据库服务器的地址;如果是登录本机,可以省略。-u
:user
用户名。后面跟登录数据的用户名,第一次安装后以root
用户来登录,是MySQL
的管理员用户。-p
:password
密码。一般不直接输入,而是回车后以保密方式输入。
2)访问数据库:
显示MySQL中的数据库列表:show databases;
默认有四个自带的数据库,每个数据库中可以有多个数据库表、视图等对象。
切换当前数据库的命令:use mysql;
- MySQL下可以有多个数据库,如果要访问哪个数据库,需要将其置为当前数据库。
- 该命令的作用就是将数据库mysql(默认提供的四个数据库之一的名字)置为当前数据库。
显示当前数据库的所有数据库表:show tables;
MySQL 层次:不同项目对应不同的数据库组成(每个数据库中有很多表,每个表中有很多数据)。
3)退出数据库:
退出数据库可以使用quit;
或者exit;
命令完成,也可以用\q;
,完成退出操作。
5. 数据库的卸载:
1)卸载数据库
-
停止MySQL服务:在命令行模式下执行
net stop mysql
或者在Windows服务窗口下停止服务。
-
在控制面板中删除MySQL软件。
-
删除软件文件夹:直接删除安装文件夹
C:\Program Files\MySQL
,其实此时该文件夹已经被删除或者剩下一个空文件夹。 -
删除数据文件夹:直接删除文件夹
C:\ProgramData\MySQL
。此步不要忘记,否则会影响MySQL的再次安装。 (ProgramData文件夹可能是隐藏的,显示出来即可) (MySQL文件下的内容才是真正的MySQL中数据) -
删除
path
环境变量中关于MySQL安装路径的配置 。