MySQL的安装与配置

news2025/2/2 17:52:51

今天要和大家唠唠关于数据库的那些事儿!按照加哥一贯的调性,咱还是从花边八卦聊起。先来简
单地梳理一下数据库、MySQL发展的时间线:
1970年,在IBM公司工作的数学家 E.F.Codd 发表了数学论文《大型共享数据库的关系数据模型》 ,首次提出关系和关系运算的概念,奠定了关系型数据库的理论模型。
1973年,IBM公司增加了更多的研究人员研究这个项目,这个项目就是著名的 SystemR 。
1974年, E.F.Codd 的同事 Don Chamberlin 将 Codd 的论文和关系运算,转换成为比较容易理解和使用的SQL语言,并且在后面成为所有关系型数据库的标准。
1976年,E.F.Codd 发表了一篇里程碑的论文 《R系统:数据库关系理论》,介绍了关系数据库理论和查询语言SQL。
1977年,加州大学伯克利分校的 Michael Stonebraker 和 EugeneWong 利用System R 已发布的信息开发自己的关系数据库系统 Ingres。同年,Oracle 的创始人LarryEllison 也在非常仔细地阅读了 E.F.Codd 博士的篇论文后,决定拉几个小伙伴开
公司创业。1979年,Oracle 发布了第一个商用版本(出于营销考虑,该公司对外宣称是该产品的
第二版)
1983年,IBM 发布了 DATABASE 2(DB2)for MVS(内部代号为"Eagle")
1986年,Michael Stonebraker 教授项目启动 Postgres 项目,此项目是由美国防务高级研究项目局(DARPA), 陆军研究办公室(ARO),国家科学基金(NSF), 以及ESL, Inc 共同赞助的。
1987年,Sybase 公司推出数据库产品。
1989年,Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发、推出了 SQLServer 第一个版本(Ashton-Tate/Microsoft SQL Server 1.0 for OS/2),随后Microsoft 终止了与 Ashton-Tate 的合作。
1994年,Microsoft 终止了与 Sybase 的合作,在买下了 Windows NT 版本的 SQLServer 全部版权后就开始完全独立开发;同年 Andrew Yu 和 Jolly Chen 向 Postgres中增加了 SQL 语言的解释器,并随后(1995年5月1日)用新名字 Postgres95 将源代码发布到互联网上供大家使用。
1996年,MySQL 发布1.0版, 同年 Postgres95 更名为:PostgreSQL 。
2005年,MySQL 发布5.0版,加入了游标,存储过程,触发器,视图和事务的支持。
2009年,Oracle 公司以74亿美元收购Sun公司,自此 MySQL 数据库进入 Oracle 时代。2016年,Oracle 决定跳过 MySQL 5.x 命名系列,并抛弃之前的 MySQL 6,7 两个分
支(从来没有对外发布的两个分支),直接进入 MySQL 8 版本命名,也就是 MySQL
8.0 版本。
哪有什么岁月静好,现实永远是江河奔流。这里加哥还要单独说一下 Michael Stonebraker 博
士。他在加州大学伯克利分校开启 Ingres 项目时,就将所有源代码都放在了学校的FTP服务器上,并对
所有人开放。可以说 Ingres 影响了后来的几乎所有的商业数据库产品。好了,接下来回到本文的主角:MySQL 。
MySQL 是目前最受欢迎的开源的关系型数据库管理系统,她最早来源于MySQL AB公司的ISAM与
mSQL项目。与其他数据库管理系统相比,她具有以下优势:
1. MySQL是一个关系数据库管理系统;
2. MySQL是开源免费的;
3. MySQL服务器是一个高效的、可靠的和易于使用的数据库服务器;
4. MySQL服务器可以工作在客户/服务器或嵌入系统中;
5. 有大量的MySQL软件可以使用。
MySQL 的创始人Michael Widenius ,曾在2008年以10亿美元的价格,将自己创建的MySQL AB
公司卖给了Sun公司。可就在随后的2009年,Oracle又以74亿美元的价格收购了Sun公司。MySQL的所有权也就落入Oracle的手中。由于担心Oracle可能会将MySQL闭源,Michael Widenius决定离开Oracle,并领导创建了新项目MariaDB。不过十多年后的今天,我们欣喜地看到Oracle并没有扼杀MySQL,反而在不断增加MySQL的研发投入。另一面,MariaDB 近几年也是搞得红红火火、风光无限!不得不说,这真是个多赢的局面。
好了,八卦唠完,进入正题!

1.Windows下安装MySQL

1.1 下载

我们可以在 MySQL 官网的下载页面,下载的 MySQL 安装文件。
下载页面: https://dev.mysql.com/downloads/mysql/
同样是推荐大家下载 zip 文件。当前的最新版是: mysql - 8.0.19 - winx64.zip 。相比之前的老版
本, MySQL 8.0 做了很多、很大的改变。 注意: 接下来的操作都是基于 MySQL 8.0 版本的,可能并不适 用于其他较低的版本。

1.2 解压文件

我们提前创建好安装目录: D:\dev\db ,如:

 

将下载好的压缩包 mysql - 8.0.19 - winx64.zip 解压至【安装目录】,注意将 mysql - 8.0.19 -
winx64 重命名为 mysql :

接下来,创建目录: D:\dev\db\mysql_data 作为数据目录:

 1.3 初始安装

1.3.1 初始化

以【管理员】身份打开【命令提示符】,进入【安装目录】下的【 bin 】目录,如:
D:/dev/db/mysql/bin

执行以下命令,初始化MySQL

mysqld --basedir=D:/dev/db/mysql --datadir=D:/dev/db/mysql_data --initialize
--console

 注意: basedir MySQL的安装目录; datadir MySQL的数据目录。

如果你在执行命令时出错,提示类似下面这种信息:
代表你的系统中缺少相应的 Microsoft Visual C++ 运行时环境,加哥已经为大家准备好了
相关的安装文件,下载后挨个安装一遍就好。下载地址: https://pan.baidu.com/s/1svs7Lidmcn
hV9jvLZrVIyQ
安装好 VC 运行时后,请重新执行 初始化 MySQL 的命令。
初始化成功后,千万不要关闭命令行窗口,我们需要记录下为 root 用户自动生成的初始密码:

如上图,窗口中提示:

[Server] A temporary password is generated for root@localhost: bg5/&qyT6tf> 

 则本次生成的密码是: bg5/&qyT6tf> ,你也需要记录下你的密码,一会儿登录MySQL时会用到。

1.3.2 配置文件

D:/dev/db/mysql_data 目录下手动创建一个文本文件,并重命名为: mysql.ini ,作为
MySQL 的配置文件。

编辑该配置文件,添加以下内容:

[client]
default-character-set=utf8mb4
port = 3306
[mysqld]
port = 3306
basedir = D:/dev/db/mysql
datadir = D:/dev/db/mysql_data
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-time_zone='+8:00'
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
max_allowed_packet = 256M
max_connections=20
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
default-character-set=utf8mb4
auto-rehash
注意: MySQL 8.0 开始需要指定服务器时区,以上配置内容都是最基本的。如无必要,请勿删减。
大家可以根据实际情况,修改 port basedir datadir 等配置项的值。

1.3.3 安装服务

在命令行窗口,继续执行以下命令以安装 MySQL 服务:
mysqld --install MySQL --defaults-file=D:/dev/db/mysql_data/mysql.ini

1.3.4 启动服务

在命令行窗口,继续执行以下命令以启动 MySQL 服务:

 net start MySQL

1.4 登录MySQL

1.4.1 初始登录

在命令行窗口,下输入登录命令登录 MySQL
mysql -uroot -p
【回车】后,根据提示输入【 1.3.1 】节中,自动生成的初始密码即可登录:

 1.4.2 修改密码

自动生成的初始密码不方便记忆,我们可以通过执行以下语句修改root用户密码:

ALTER USER 'root' @'localhost' IDENTIFIED WITH mysql_native_password BY
'123456' ;

这样,我们就将 root 用户的密码修改为: 123456 了。
可选: 如果要允许 root 用户远程登录,可以执行以下语句:
#root可从任何IP登录,注意修改密码'123456'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH
GRANT OPTION;

1.5 删除服务

当我们需要卸载 MySQL 时,可以参照以下流程:
1. 停止 MySQL 服务,在以管理员身份打开的命令行窗口中,执行以下命令:
net stop MySQL  

2. 继续执行以下命令,删除 MySQL 服务:

sc delete MySQL 

至此,MySQL就已经卸载了,无任何残留。你可以继续删除: D:\dev\db\mysql

D:\dev\db\mysql_data 两个目录。但是加哥必须负责任的告诉你: 数据无价,操作需谨慎!!!

2. Docker 安装MySQL

容器化 已成为事实标准的今天,我们可以方便地通过 Docker 安装 MySQL 。接下来加哥还是在
CentOS 7 主机,为大家做演示。

2.1 准备

加哥再次提醒各位: 数据无价,操作需谨慎!!! 因此,我们提前创建数据目录以存放 MySQL
数据文件,如:
[root@centos ~] # mkdir /data
[root@centos ~] # mkdir /data/mysql

我们创建数据目录为: /data/mysql

2.2 拉取镜像

执行 Docker 命令,拉取最新的 MySQL 镜像:
docker pull mysql

下载时间可能会比较长,请耐心等待执行完成...

2.3 运行容器

执行 Docker 命令运行一个容器:
docker run -d --name mysql \
-p 3306 :3306 \
-v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD = 123456 \
mysql:latest \
--default-authentication-plugin = mysql_native_password \
--character-set-server = utf8mb4 \
--collation-server = utf8mb4_unicode_ci

 就这么简单,MySQL已经安装、运行成了!往后如果要再次启动该容器,只需执行:

docker start mysql

 2.4 停止与删除

如果要停止运行中的 MySQL 容器,可以执行 Docker 命令:
docker stop mysql

如果要删除 MySQL 容器,可以执行 Docker 命令:

docker rm mysql  

3. 总结

今天加哥又和大家唠叨了一堆关于数据库的事儿,也演示了在 Windows Docker 中安装 MySQL 详细步骤。希望能对你有所帮助。对比一下Windows Docker 这两种安装方式,相信大家也能感受到 Docker的强大与便捷。

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

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

相关文章

每日站会如此简单,为什么总是开不好?

美式足球或橄榄球等运动的球队,会在每场比赛上场前聚在一起开个短会。这种临场短会能让整个球队的成员在比赛过程中互通信息、相互协作。 每日站会是敏捷开发的重要流程之一。对于团队而言,每日站会与这种赛前短会类似,让每个成员都了解到团…

2023年上海/成都/深圳CSPM-3中级国标项目管理认证招生

CSPM-3中级项目管理专业人员认证,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要…

Matplotlib坐标轴范围

Matplotlib 可以根据自变量与因变量的取值范围,自动设置 x 轴与 y 轴的数值大小。当然,您也可以用自定义的方式,通过 set_xlim() 和 set_ylim() 对 x、y 轴的数值范围进行设置。 当对 3D 图像进行设置的时,会增加一个 z 轴&#x…

日志收集工具

日志管理的第一步是收集日志数据。日志收集可能是一项具有挑战性的任务,因为某些系统(如防火墙、入侵检测系统和入侵防御系统)具有生成大量日志数据的 EPS(每秒事件数)。为了实时收集和处理日志数据,无论日…

【历史上的今天】6 月 7 日:图灵逝世;Kubernetes 开源版本发布;分组交换网络发明者出生

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 6 月 7 日,在 1742 年的今天,普鲁士数学家克里斯蒂安哥德巴赫在写给瑞士数学家莱昂哈德欧拉的通信中,提出了以下的猜想&…

手机APP三维建模不清晰?单反相机接入移动端来袭!

为什么我们需要单反相机接入 当前,手机本身的像素还满足不了考古级的精度要求,考古现场都是用专业相机对文物进行拍照,再把照片导入到电脑进行建模。“考古工作比较细致,有时候一来一回挺费事的。”云端地球的忠实用户&#xff0…

Linux5.16 Ceph集群

文章目录 计算机系统5G云计算第四章 LINUX Ceph集群一、Ceph1.存储基础1)单机存储设备2)单机存储的问题3)商业存储解决方案4)分布式存储(软件定义的存储 SDS)5)分布式存储的类型 2.Ceph 简介3.C…

微信公众号登录

整个流程,1.前端调用授权url 接口(创建一个重定向的请求方法,访问自动回调方法wechat.mp.callbackUrl的地址)。2.微信自动回调方法里判断该用户是需要注册还是直接登录(如果直接登录就返回token) 是注册还是登录返回到配置文件中的 wechat.mp…

LIMS系统应用于第三方实验室的意义

金现代LIMS实验室管理系统是将实验室业务从线下转到线上,按照 CNAS 规范进行合规化管理,并提升实验室工作效率的信息化系统。随着实验室业务的不断发展,实验室的规模逐渐扩大,样品数量和检测项目不断增加,数据管理需求…

客户报备小程序系统开发制作方案

客户报备系统小程序是一种用于公司业务人员进行客户管理和报备的小程序系统。 客户报备小程序系统主要功能包括以下几个方面: 1、用户注册与登录 提供用户注册和登录功能,确保用户可以使用个人账户登录系统。 2、报备信息录入 对于需要报备的客户&#x…

手把手教你搭建SpringCloud项目(三)集成Eureka服务注册中心

我们首先了解 Eureka:官方介绍 一、了解Eureka 1、什么是服务治理? Springcloud 封装了Netfix公司开发的Eureka模块来实现服务治理。在传统的RPC远程调用中,管理每个服务于服务之间依赖关系复杂,管理复杂,所以需要使…

113. 路径总和 II

113. 路径总和 II 原题链接:完成情况:解题思路:参考代码: 原题链接: 113. 路径总和 II https://leetcode.cn/problems/path-sum-ii/ 完成情况: 解题思路: /**解题思路:* 和之前一…

msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发

文章目录 为什么用这个msys2下载、doc安装,很简单初次运行,做些配置更新软件安装与卸载方法安装必要的软件包设置win环境变量在windows terminal中使用在vscode中使用 为什么用这个msys2 方便windows上的C开发demo,不需要VS了方便C开发安装o…

Redis缓存更新策略以及常见缓存问题

文章目录 一、什么是缓存?二、添加Redis缓存三、缓存更新策略四、缓存穿透五、缓存雪崩六、缓存击穿七、缓存工具封装 一、什么是缓存? 缓存就是数据交换的缓冲区(Cache),是存储数据的临时地方,一般读写性能较好,常见…

Mac环境配置(Java)----使用bash_profile进行配置

1、打开软件--终端 2、首先查看本机Java的安装地址(系统默认的) /usr/libexec/java_home -V 查看到Java8安装的路径如下: 3、如果是第一次配置环境变量,使用命令:【touch .bash_profile】创建一个.bash_profile隐藏…

多表查询例题

目录 创建学生表 创建分数表 查看表结构 向两张表插入数据 1.查间student表的昕有记录 ​2.查间student表的第2条到4条记录 ​3.从student表查间所有学生的学号(id)、姓名(name)和院系(department)的信息 ​4.从student表中查间计算机系和英语系的学生的信息 ​5.从stu…

免费nas diy

安装Debian11 * 安装时选择ssh-server服务 * 安装时选中non-free contrib 还有bullseye-backports non-free 可以安装闭源驱动 bullseye-backports 可以更新内核 安装完成后,编辑/etc/apt/sources.list文件,关闭光驱源 并 切换到国内源 安装新内核6.1,重启后,可以移除老内…

监控指标111

P95、P99.9百分位数值——服务响应时间的重要衡量指标 开发技术 开发技术 2021-02-01 388次浏览 前段时间,在对系统进行改版后,经常会有用户投诉说页面响应较慢,我们看了看监控数据,发现从接口响应时间的平均值来看在500ms左右&…

数据结构--线性表以及其顺序存储结构

这里写目录标题 线性表的定义和特征定义特征 案例引入稀疏多项式链表实现多项式相加小结 线性表的类型定义(抽象数据类型)定义格式基本操作小结 线性表的顺序表示和实现实现1顺序存储表示顺序表中元素存储位置的计算 实现2顺序表的优点问题出现结构体表示…

你需要跟踪分析产品知识库的哪些关键数据

当你拥有一个产品知识库时,了解如何跟踪和分析关键数据指标是非常重要的。这些数据可以提供有关知识库使用情况、用户行为和满意度的宝贵见解。 在本文中,我们将探讨你需要跟踪的几个重要数据指标,以帮助你优化和改进产品知识库的效果和价值。…