MySQL从0到1全教程【1】MySQL数据库的基本概念以及MySQL8.0版本的部署

news2025/1/13 7:29:27

1 MySQL数据库的相关概念

1.1 数据库中的专业术语

1.1.1 数据库 (DB)

数据库是指:保存有组织的数据的容器(通常是一个文数据库 (database)件或一组文件)。

1.1.2 数据库管理系统 (DBMS)

数据库管理系统(DBMS)又称为数据库软件(产品),用于管理DB中的数据

注意:人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS (数据库管理系统 )。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库: 你使用的是DBMS,它替你访问数据库

1.1.3 表 (table)

表指的是某种特定类型数据的结构化清单

这里关键的一点在于,存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的这表示数据库中没有其他表具有相同的名字。

表名:表名的唯一性取决于多个因素,如数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名但在不同的数据库中却可以使用相同的表名。

1.1.4 列 (column)

表由列组成,列中存储着表中某部分的信息,列(column)表中的一个字段。
所有表都是由一个或多个列组列

理解列的最好办法是将数据库表想象为一个网格。网格中每一列存储着一条特定的信息。例如,在顾客表中,一个列存储着顾客编号,另一个列存储着顾客名,而地址、城市、州以及邮政编码全都存储在各自的列中。

1.1.5 行 (row)

行指表中的一个记录,表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。例如,顾客表可以每行存储一个顾客。表中的行数为记录的总数。

1.1.6 结构化查询语句(SQL)

SQL是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。

与其他语言(如:英语以及Java和Visual Basic这样的程序设计语言)
不一样,SQL由很少的词构成,这是有意而为的。设计SQL的目的是很好
地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。

SQL有如下的优点:

  1. SQL不是某个特定数据库供应商专有的语言。几乎所有重要的
    DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库
    打交道。
  2. SQL简单易学。它的语句全都是由描述性很强的英语单词组成,
    而且这些单词的数目不多。
  3. SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活
    使用其语言元素,可以进行非常复杂和高级的数据库操作。

1.2 关系型数据库的概念

关系型数据库是指使用关系模型进行数据组织和管理的数据库,其中数据以二维表格的形式表示,表格中的每一行表示一个数据记录,表格中的每一列表示一个数据属性。关系型数据库最早由IBM的研究员E.F.Codd在20世纪70年代提出,并成为了当今最流行的数据库类型之一。

1.2.1 关系型数据库的特性和优点

  1. 数据结构的规范性和可靠性。关系型数据库采用严格的数据结构规范和约束,确保数据的完整性、一致性和可靠性,避免了数据的冗余和重复,提高了数据的可维护性和可管理性。

  2. 数据操作的灵活性和复杂性。关系型数据库支持SQL语言进行数据的操作和管理,SQL语言具有强大的灵活性和复杂性,能够满足各种数据处理需求,包括数据的查询、插入、更新和删除等。

  3. 数据共享的安全性和可控性。关系型数据库支持数据的共享和访问控制,能够保证数据的安全性和可控性,只有经过授权的用户才能访问和操作数据,避免了数据泄露和损坏的风险。数据的备份和恢复 关系型数据库支持数据的备份和恢复,能够在系统故障或数据丢失的情况下快速恢复数据,保证数据的安全性和可靠性。

1.3 主流关系型数据库的对比

1.3.1 MySQL

MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。
与其他数据库管理系统相比,MySQL具有以下优势:

  1. MySQL是一个关系数据库管理系统。
  2. MySQL是开源的。
  3. MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。
  4. MySQL服务器工作在客户/服务器或嵌入系统中。
  5. 有大量的MySQL软件可以使用。

1.3.2 SQL Server

SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。目前最新版本是SQL Server 2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。

SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。

1.3.3 Oracle

该公司成立于1977年,最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。 1984年,首先将关系数据库转到了桌面计算机上。然后,Oracle5率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle 6首创行锁定模式以及对称多处理计算机的支持,最新的Oracle 8主要增加了对象技术,成为关系—对象数据库系统。目前,Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。

Oracle数据库产品具有以下优良特性。

  1. 兼容性:Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。
  2. 可移植性:Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、Windows等多种操作系统下工作。
  3. 可联结性:Oracle能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。
  4. 高生产率:Oracle产品提供了多种开发工具,能极大地方便用户进行进一步的开发。
  5. 开放性:Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。

2 在Linux系统中搭建MySQL数据库

2.1 下载MySQL8.0

直接到官网下载最新版即可

下载地址:https://dev.mysql.com/downloads/mysql/

选择linux通用版本

在这里插入图片描述

选择glibc 64位压缩包

在这里插入图片描述

2.2 解压安装

上传文件至服务器,本次演示mysql上传位置:/appusr/apphome

解压执行命令:

tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

重命名为:mysql-8.0

mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql-8.0

进入mysql-8.0的目录,新建data文件夹:

[root@centos-tianmen apphome]# cd mysql-8.0/
 
[root@centos-tianmen mysql-8.0]# mkdir data
[root@centos-tianmen mysql-8.0]# ll
总用量 296
drwxr-xr-x.  2 7161 31415   4096 1217 00:54 bin
drwxr-xr-x.  2 root root       6 319 14:42 data
drwxr-xr-x.  2 7161 31415     56 1217 00:54 docs
drwxr-xr-x.  3 7161 31415   4096 1217 00:54 include
drwxr-xr-x.  6 7161 31415    201 1217 00:54 lib
-rw-r--r--.  1 7161 31415 283374 1216 23:34 LICENSE
drwxr-xr-x.  4 7161 31415     30 1217 00:54 man
-rw-r--r--.  1 7161 31415    666 1216 23:34 README
drwxr-xr-x. 28 7161 31415   4096 1217 00:54 share
drwxr-xr-x.  2 7161 31415     77 1217 00:54 support-files

新增tmp、log目录后面使用:

[root@centos-tianmen mysql-8.0]# mkdir log
[root@centos-tianmen mysql-8.0]# mkdir tmp

2.3 创建mysql用户组及用户

新增用户组mysql:

groupadd mysql

新增用户mysql 密码mysql:

useradd -g mysql mysql

授权,指向mysql的安装目录:

chown -R mysql.mysql /appusr/apphome/mysql-8.0/

2.4 初始化数据库

进入mysql安装目录,我的安装目录为:/appusr/apphome/mysql-8.0:

[root@centos-tianmen mysql-8.0]# cd /appusr/apphome/mysql-8.0/
[root@centos-tianmen mysql-8.0]# pwd
/appusr/apphome/mysql-8.0

初始化数据库:

[root@centos-tianmen mysql-8.0]# ./bin/mysqld --user=mysql --basedir=/appusr/apphome/mysql-8.0/ --datadir=/appusr/apphome/mysql-8.0/data/ --initialize ;
2023-03-19T08:42:40.094583Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-03-19T08:42:40.094889Z 0 [System] [MY-013169] [Server] /appusr/apphome/mysql-8.0/bin/mysqld (mysqld 8.0.32) initializing of server in progress as process 53132
2023-03-19T08:42:40.116956Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-03-19T08:42:40.999879Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-03-19T08:42:43.037019Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: =cFY9lpinfc6

记住临时密码:=cFY9lpinfc6

2.5 配置Mysql

修改配置文件:

vi /etc/my.cnf

my.cnf配置文件自用:

#[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
 
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
 
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
 
 
[mysql]
#basedir=/appusr/apphome/mysql-8.0
#datadir=/appusr/apphome/mysql-8.0/data/
socket=/appusr/apphome/mysql-8.0/tmp/mysql.sock
port=3306
user=mysql
#skip-grant-tables
# 指定日志时间为系统时间
#log_timestamps=SYSTEM
#log-error=/appusr/apphome/mysql-8.0/log/mysql.err
# # 指定字符集为utf8,因为mysql8.0中的默认字符集为utfmb4,会和其他程序引起兼容性问题
default-character-set=utf8
#
#
[mysqld]
basedir=/appusr/apphome/mysql-8.0
datadir=/appusr/apphome/mysql-8.0/data
socket=/appusr/apphome/mysql-8.0/tmp/mysql.sock
port=3306
user=mysql
log_timestamps=SYSTEM
collation-server = utf8_unicode_ci
character-set-server = utf8
# # 指定默认认证的加密方式,mysql8.0中默认方式为caching_sha2_password,引起老版本兼容性问题
default_authentication_plugin= mysql_native_password
#skip-grant-tables
 
[mysqld_safe]
log-error=/appusr/apphome/mysql-8.0/log/mysqld_safe.err
pid-file=/appusr/apphome/mysql-8.0/tmp/mysqld.pid
socket=/appusr/apphome/mysql-8.0/tmp/mysql.sock
#skip-grant-tables
 
[mysql.server]
#basedir=/appusr/apphome/mysql-8.0
datadir=/appusr/apphome/mysql-8.0/data
socket=/appusr/apphome/mysql-8.0/tmp/mysql.sock
port=3306
user=mysql
#skip-grant-tables
 
[mysqladmin]                                                                                                                                 
socket=/appusr/apphome/mysql-8.0/tmp/mysql.sock

2.6 建立Mysql服务

进入mysql安装目录:

cd /appusr/apphome/mysql-8.0/

添加Mysql到系统服务:

cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql

检查服务是否生效:

chkconfig --list mysql

如图:


[root@centos-tianmen mysql-8.0]# cp -a ./support-files/mysql.server /etc/init.d/mysql 
[root@centos-tianmen mysql-8.0]# chmod +x /etc/init.d/mysql
[root@centos-tianmen mysql-8.0]# chkconfig --add mysql
[root@centos-tianmen mysql-8.0]# chkconfig --list mysql
 
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 
 
      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。
 
mysql          	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@centos-tianmen mysql-8.0]#

启动mysql服务:

service mysql start

如有报错文件不存在,新建缺失的文件,授权mysql :

[root@centos-tianmen mysql-8.0]# service mysql start;
Starting MySQL... SUCCESS!

查看服务状态:

service mysql status;
[root@centos-tianmen mysql-8.0]# service mysql status;
 SUCCESS! MySQL running (54691)

2.7 修改密码

进入mysql安装目录的bin目录:

cd /appusr/apphome/mysql-8.0/bin/

使用上面的临时密码登录,执行命令

./mysql -uroot -p

如图:

[root@centos-tianmen bin]# ./mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32
 
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> 

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

OK,到此安装完成了!

2.8 开启远程访问

在登录状态执行下述SQL:

mysql> CREATE USER 'root'@'%' IDENTIFIED BY '密码';
Query OK, 0 rows affected (0.03 sec)
 
mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.02 sec)
 
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
Query OK, 0 rows affected (0.01 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1374529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小H靶场笔记:Empire-Breakout

Empire:Breakout January 11, 2024 11:54 AM Tags:brainfuck编码;tar解压变更目录权限;Webmin;Usermin Owner:只惠摸鱼 信息收集 使用arp-scan和namp扫描C段存活主机,探测靶机ip:1…

横版动作闯关游戏:幽灵之歌 GHOST SONG 中文版

在洛里安荒凉的卫星上,一件长期休眠的死亡服从沉睡中醒来。踏上发现自我、古老谜团和宇宙骇物的氛围2D冒险之旅。探索蜿蜒的洞穴,获得新的能力来揭开这个外星世界埋藏已久的秘密。 游戏特点 发现地下之物 探索这个广阔而美丽如画,充满密室和诡…

Graham扫描凸包算法

凸包(Convex Hull)是包含给定点集合的最小凸多边形。凸包算法有多种实现方法,其中包括基于递增极角排序、Graham扫描、Jarvis步进法等。下面,我将提供一个简单的凸包算法实现,基于Graham扫描算法。 Graham扫描算法是一…

关于PhpStorm的安装激活与汉化

访问官网下载PhpStorm https://www.jetbrains.com/phpstorm/download/#sectionwindows 点击download 下载好后,双击exe安装程序 点击下一步 选择安装位置 前两个肯定需要勾选: 创建桌面快捷方式;创建关联php; 根据以往经验&am…

CES 2024丨引领变革,美格智能为智能终端带来生成式AI能力

作为电子行业的“风向标”,CES 2024(国际消费电子展)于1月9日至12日在美国拉斯维加斯举办。本届展会可谓是AI的盛宴,芯片、AI PC、智能家居、汽车科技、消费电子等领域与AI相关的前沿成果接连发布,引领人工智能领域的科…

【数据库】视图索引执行计划多表查询笔试题

文章目录 一、视图1.1 概念1.2 视图与数据表的区别1.3 优点1.4 语法1.5 实例 二、索引2.1 什么是索引2.2.为什么要使用索引2.3 优缺点2.4 何时不使用索引2.5 索引何时失效2.6 索引分类2.6.1.普通索引2.6.2.唯一索引2.6.3.主键索引2.6.4.组合索引2.6.5.全文索引 三、执行计划3.1…

leaflet学习笔记-缓冲区绘制(六)

前言 在GIS开发中,缓冲区的绘制和使用是非常广泛的,一般情况下就是对缓冲区范围内的要素做分析使用,也会有一些其他的操作,下面我就记录一下使用leafletturf.js完成缓冲区的绘制操作 turf.js简介 Turf.js 是一个用于地理空间计…

上架苹果APP的时候在哪里填写APP的隐私政策信息

在如今高度重视数据隐私的时代,开发并上架一个iOS APP时提供透明的隐私政策是非常重要的。苹果公司对此有严格的规定,任何上架至App Store的应用都必须包含一个隐私政策。以下是您在上架苹果APP时填写隐私政策信息的详细步骤和必须注意的事项。 准备隐私…

考古学家 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C 题目描述 有一个考古学家发现一个石碑,但是很可惜发现时其已经断成多段。 原地发现N个断口整齐的石碑碎片,为了破解石碑内容,考古学家希望有程序能帮忙计算复原后的石…

最新PyCharm安装详细教程及pycharm配置_pycharm安装教程

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads,进入二级页面,选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…

Unity中向量的点乘、叉乘区别和作用以及经典案例

文章目录 点乘(Dot Product)叉乘(Cross Product)向量归一化(Normalize)其他作用 unity开发中我们要计算角度,判断位置,常用点乘、叉乘、归一化等等,我们看看他们的使用案…

Android 通知简介

Android 通知简介 1. 基本通知 图1: 基本通知详情 小图标 : 必须提供,通过 setSmallIcon( ) 进行设置.应用名称 : 由系统提供.时间戳 : 由系统提供,也可隐藏时间.大图标(可选) : 可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过setLargeIcon( ) 进行设置.标题 : 可选…

中国社科院大学与美国杜兰大学金融管理硕士项目——熬过寒冬,春日暖阳已不远

在金融领域,寒冬似乎成了无法避免的阶段。然而,对于那些坚守岗位的金融从业者来说,熬过寒冬并非无望。正如冬去春来,只要我们采取明智的策略,迈出坚定的步伐,春日的暖阳已在不远方照耀。社科院与美国杜兰大…

SpringBoot+Hutool实现图片验证码

图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用,能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装,给前端返回的验证码数据: Data public class ValidateCodeV…

JS栈和堆:数据是如何存储的

JS栈和堆:数据是如何存储的 背景JavaScript 是什么类型的语言JavaScript 的数据类型内存空间栈空间和堆空间再谈闭包 背景 JS有多种数据类型:数字型,字符串型,数组型等,虽然 JavaScript 并不需要直接去管理内存&#…

都2024年了,FP卖家还不知道AB站怎么玩?

自从开始写FP独立站各种运营技巧和黑科技的文章,经常都会有朋友来私V,询问怎么进行AB站跳转。 可能是现在平台对于FP商家的限制越来越多,再加上如今到处都是“内卷”的电商环境,让FP商家生存越来越艰难,今天就着重讲一…

美当局批准现货比特币ETF,BTC不涨反跌?解读22页官方文件,SEC的担忧被完全解决了吗?

美东时间2024年1月10日下午,美SEC官宣批准现货比特币ETF的上市和交易,这是一个里程碑时刻,代表着加密资产类别获得主流采用的最重要一步。 11只获得批准的现货比特币ETF分别来自:BlackRock、Bitwise、Grayscale、Hashdex、Valkyri…

CAN201 计网大题收集

网络性能计算 e.g1 e.g2 木桶效应 e.g3 吞吐量 e.g4 时延 e.g5 时延 e.g5 e.g e.g6 拓展 e.g7 传输层 TCP D 拥塞控制算法 拥塞控制算法_哔哩哔哩_bilibili 慢开始,拥塞避免,快重传,快恢复 物理层 根据我印象好像不太需要学物理层这块…

科技成果鉴定测试的意义在哪?鉴定测试报告重要吗?

科技成果鉴定测试是指通过一系列的评估和验证过程,对科技成果所包含的技术特征、技术优势以及市场应用前景进行客观、准确的评估和证明的过程。科技成果鉴定测试可以对科技项目进行全面、系统的评估,从而找出项目的优势和不足之处,并为项目的…

usb静电防护芯片选择

方案1 USBLC6-2SC6 优缺点 优点:进出使用不同的焊盘,如果没有焊接好信号必定不能通过。有效的避免了虚焊导致故障。 缺点:不能省略,调试时也不能省略。 原理图 参考价格 参考来源 USB切换方案,多电脑共用USB方案…