MySQL 8.0官方文档:https://dev.mysql.com/doc/refman/8.0/en/
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。
在这一部分,我们先来讲解三个概念:数据库、数据库管理系统、SQL。
名称 | 全称 | 简称 |
---|---|---|
数据库 | 存储数据的仓库,数据是有组织的进行存储 | DataBase(DB) |
数据库管理系统 | 操纵和管理数据库的大型软件 | DataBase Management System (DBMS) |
SQL | 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 | Structured Query Language (SQL) |
而目前主流的关系型数据库管理系统的市场占有率排名如下:
而不论我们使用的是上面的哪一个关系型数据库,最终在操作时,都是使用SQL语言来进行统一操作,因为我们前面讲到SQL语言,是操作关系型数据库的 统一标准。所以即使我们现在学习的是MySQL,假如我们以后到了公司,使用的是别的关系型数据库,如:Oracle、DB2、SQLServer,也完全不用担心,因为操作的方式都是一致的。
官方: https://www.mysql.com/
MySQL官方提供了两种不同的版本:
下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html
本次我们选择下载MySQL Community Server 8.0.26
版本。
注意:第一种方式Developer Default默认安装到C盘,C:\Program Files\MySQL\MySQL Server 8.0\
,这里选择Custom自定义安装。
选择产品窗口,可以定制需要安装的产品清单。例如,选择“MySQL Server 8.0.26-X64”后,单击“→”添加按钮,即可选择安装MySQL服务器,如图所示。采用通用的方法,可以添加其他你需要安装的产品。
此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接。
上面为默认安装界面,ProgramData目录(这是一个隐藏目录),如果没显示,需要到此电脑中的查看中勾选隐藏项目项。如果自定义安装目录,请避免“中文”目录。另外,建议服务目录和数据目录分开存放。
此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中 对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接。
安装MySQL的相关组件,这个过程可能需要耗时几分钟,耐心等待。
第一个选项:
使用强密码加密进行身份验证,采用SHA256基础的密码加密方法(已升级)
第二个选项:
使用传统身份验证方法(保留MySQL 5.x兼容性)
如果我们选择了强密码加密进行身份验证,虽然MySQL采用了强密码加密,但是我们的图形化管理软件(SQLyog、Navicat等)却没有采用强密码加密,这回直接导致SQLyog访问不了我们的MySQL,所以这里我们要选择传统的加密方法。
设置MySQL中root用户的密码,两次一致。一定记住该密码,这里为了方便设置为123456
设置服务器名称窗口,如图所示。该服务名会出现在Windows服务列表中,也可以在命令行窗口中使用该服务名进行启动和停止服务。
如果希望开机自启动服务,也可以勾选“Start the MySQL Server at System Startup”选项(推荐)。
下面是选择以什么方式运行服务?可以选择“Standard System Account”(标准系统用户)或者“Custom User” (自定义用户)中的一个。这里推荐前者。
(3)配置
安装好MySQL之后,还需要配置环境变量,这样才可以在任何目录下连接MySQL。
D. 选择 “新建” , 将MySQL Server的安装目录下的bin目录添加到环境变量
MySQL安装完成之后,在系统启动时,会自动启动MySQL服务(cmd:services.msc),我们无需手动启动了。
当然,也可以手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令:
# 启动mysql80服务
net start mysql80
# 停止mysql80服务
net stop mysql80
以管理员方式运行:windows搜索cmd-右键-(更多)-以管理员身份运行。
注意 : 上述的 mysql80 是我们在安装MySQL时,默认指定的mysql的系统服务名,不是固定的,如果未改动,默认就是mysql80。
这里要先以管理员身份运行cmd,启动MySQL服务后,再输入密码连接数据库。
mysql [-h 127.0.0.1] [-P 3306] -u root -p
参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
[]内为可选参数,如果需要连接远程的MySQL,需要加上这两个参数来指定远程主机IP、端口,如果
连接本地的MySQL,则无需指定这两个参数。
注意: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量。
win+R 打开运行,输入 services.msc
点击 “确定” 调出系统服务。
打开控制面板 —> 卸载程序 —> 卸载MySQL相关所有组件
默认数据存放目录是在 C:\ProgramData\MySQL
,直接将该文件夹删除。
如果已将MySQL卸载,但是通过任务管理器 —> 服务,查看到MySQL服务仍然残留在系统服务里。
解决办法:
sc delete 服务名称
(如MySQL80)这样可以实现删除服务。
最后,重启电脑即可生效。
在C盘和D盘对应的安装目录下都新建文件夹MySQL Server x.x,这里自定义软件安装目录在D盘,数据库中的数据存放在C盘
除MySQL自带的客户端工具外,我们还可以使用第三方客户端工具。这里介绍一下如何解决当用Navicat Premium连接MySQL数据库时报的2059错误,如下图所示:
这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。为解决这个问题,可以将MySQL用户登录的加密规则修改为mysql_native_password,成功连接MySQL数据库服务器后,依次输入如下语句:
对于用户root:
# 使用mysql数据库
use mysql;
# 设置密码永不过期
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 修改加密规则,并设置新的用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限
FLUSH PRIVILEGES;
对于新创建的用户test:
# 使用mysql数据库
use mysql;
# @后的%表示任何主机
ALTER USER 'test'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# @后的%表示任何主机
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限
FLUSH PRIVILEGES;
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:\\Mysql\\mysql-5.7.31-winx64
datadir=D:\\Mysql\\mysql-5.7.31-winx64\\data
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
而所谓二维表,指的是由行和列组成的表,如下图(就类似于Excel表格数据,有表头、有列、有行,还可以通过一列关联另外一个表格中的某一列数据)。我们之前提到的MySQL、Oracle、DB2、SQLServer这些都是属于关系型数据库,里面都是基于二维表存储数据的。简单说,基于二维表存储数据的数据库就成为关系型数据库,不是基于二维表存储数据的数据库,就是非关系型数据库。
特点:
A. 使用表存储数据,格式统一,便于维护。
B. 使用SQL语言操作,标准统一,使用方便。
MySQL是关系型数据库,是基于二维表进行数据存储的,具体的结构图下: