MySQL在Linux上的四种安装方式

news2024/12/28 10:00:19

目录

前言

一、仓库安装

二、本地安装

三、容器安装

四、源码安装


前言

博主的配置信息:

Windows版本:Win10

VMware虚拟机版本:Vmware Workstation Pro 17

Linux版本:Red Hat Enterprise Linux 9.1

MySQL版本:MySQL Community Server 8.0.32

保证Linux的正常联网以及配置yum仓库。

可以在MySQL官网地址:https://www.mysql.com/ 上获取到正规的MySQL。

MySQL 常见版本:

  • MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  • MySQL Enterprise Edition 企业版本,需付费,可以试用 30 天。
  • MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。
  • MySQL Cluster CGE 高级集群版,需付费

MySQL数据库存在多种版本,不同的版本在不同的平台上(OS,也就是操作系统上)安装方式可能有所不同,因此安装时最好参照官方文档进行安装。https://dev.mysql.com/doc/

下面记录了博主在Linux上通过仓库安装、本地安装、容器安装、源码安装四种不同的方式安装MySQL的过程:

一、仓库安装

仓库安装就是在官方仓库或本地仓库、网络仓库中,用yum方式安装。推荐使用官方仓库。博主认为仓库安装相比其他安装方式来说是最方便的。

获取MySQL仓库的网站:https://repo.mysql.com/

[root@forDB ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 9.1 (Plow)

[root@forDB ~]# rpm -ivh  https://repo.mysql.com/mysql80-community-release-el9-1.noarch.rpm
[root@forDB ~]# ll /etc/yum.repos.d/
total 20
-rw-r--r--. 1 root root 218 Feb  7 20:40 aliyum-9.repo
-rw-r--r--. 1 root root 951 Jul  6  2022 mysql-community-debuginfo.repo
-rw-r--r--. 1 root root 827 Jul  6  2022 mysql-community.repo
-rw-r--r--. 1 root root 871 Jul  6  2022 mysql-community-source.repo
-rw-r--r--. 1 root root 358 Feb  7 20:41 redhat.repo

[root@forDB ~]# yum install mysql-server -y
[root@forDB ~]# rpm -qa | grep mysql
mysql80-community-release-el9-1.noarch
mysql-community-common-8.0.32-1.el9.x86_64
mysql-community-client-plugins-8.0.32-1.el9.x86_64
mysql-community-libs-8.0.32-1.el9.x86_64
mysql-community-client-8.0.32-1.el9.x86_64
mysql-community-icu-data-files-8.0.32-1.el9.x86_64
mysql-community-server-8.0.32-1.el9.x86_64

[root@forDB ~]# systemctl start mysqld
[root@forDB ~]# systemctl status mysqld

# MySQL8.0.32版本第一次登录需要临时密码,在mysqld.log文件中
[root@forDB ~]# grep password /var/log/mysqld.log 
2023-02-09T12:46:59.105801Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;/pZjo)lV8>B

[root@forDB ~]# mysql -uroot -p';/pZjo)lV8>B'
# 登录之后必须先修改用户密码,不然无法正常使用mysql。默认密码策略要求密码至少包含一个大写字母、一个小写字母、一位数字和一个特殊字符,并且密码总长度至少为8个字符。
mysql> ALTER USER root@localhost IDENTIFIED BY 'Admin123!';
# 此时就可以正常使用mysql了
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

卸载MySQL:

[root@forDB ~]# yum remove mysql-server -y
[root@forDB ~]# rpm -qa | grep mysql
mysql80-community-release-el9-1.noarch
[root@forDB ~]# yum remove mysql80-community-release.noarch -y
# 删除相关文件,以防再次安装产生冲突
[root@forDB ~]# rm -rf /var/log/mysqld.log /var/lib/mysql/

二、本地安装

本地安装就是下载MySQL的捆绑包到本地,然后解包安装。

捆绑包地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar

或在 https://dev.mysql.com/downloads/mysql/ 中获取对应操作系统的捆绑包(这不能在Linux中下载,只能先下载到Windows上再传到Linux上)

[root@forDB ~]# mkdir mysql
[root@forDB ~]# cd mysql/
[root@forDB mysql]# wget  https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
[root@forDB mysql]# tar xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar 

[root@forDB mysql]# rpm -ivh mysql-community-server-8.0.32-1.el9.x86_64.rpm \
> mysql-community-client-8.0.32-1.el9.x86_64.rpm \
> mysql-community-common-8.0.32-1.el9.x86_64.rpm \
> mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm \
> mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \
> mysql-community-libs-8.0.32-1.el9.x86_64.rpm

[root@forDB mysql]# systemctl start mysqld.service 
[root@forDB mysql]# systemctl status mysqld.service 

[root@forDB mysql]# grep password /var/log/mysqld.log 
2023-02-09T13:52:16.691395Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: d+41ucpK_)IN

[root@forDB mysql]# mysql -uroot -p
Enter password: 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin123!';
mysql> show databases;
mysql> exit

卸载MySQL:

[root@forDB mysql]# rpm -qa | grep mysql
mysql-community-client-plugins-8.0.32-1.el9.x86_64
mysql-community-common-8.0.32-1.el9.x86_64
mysql-community-libs-8.0.32-1.el9.x86_64
mysql-community-client-8.0.32-1.el9.x86_64
mysql-community-icu-data-files-8.0.32-1.el9.x86_64
mysql-community-server-8.0.32-1.el9.x86_64

[root@forDB mysql]# rpm -evh mysql-community-client-plugins \
> mysql-community-common \
> mysql-community-libs \
> mysql-community-client \
> mysql-community-icu-data-files \
> mysql-community-server

[root@forDB mysql]# rm -rf /var/log/mysqld.log /var/lib/mysql/

本地安装的缺点就是安装时的依赖很烦人,卸载时也比较麻烦。我的评价是不如仓库安装。

三、容器安装

容器安装方式首先要安装容器,再在容器上安装MySQL。

#删除之前的容器
[root@forDB ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

#安装容器的依赖包
[root@forDB ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

#添加阿里云的容器仓库
[root@forDB ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更改仓库文件中的下载网站为阿里云的网站,因为国内的网站会快一些
[root@forDB ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

#安装docker-ce,这里要用--allowerasing选项来替换rhel9中冲突的软件包
[root@forDB ~]# yum install docker-ce --allowerasing -y

[root@forDB ~]# systemctl start docker
[root@forDB ~]# systemctl status docker
[root@forDB ~]# docker version

#测试docker能否正常运行
[root@forDB ~]# docker run hello-world

#安装mysql
[root@forDB ~]# docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql

#查看容器信息
[root@forDB ~]# docker ps

#为mysqltest建立一个bash接口
[root@forDB ~]# docker exec -it mysqltest /bin/bash

#登录测试
bash-4.4# mysql -uroot -p  
Enter password: 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit
Bye
bash-4.4# exit
exit
[root@forDB ~]# 

登录时也可以用主机直接连容器的MySQL:

#安装一个MySQL的客户端
[root@forDB ~]# yum install mysql -y

#查看容器的ip
[root@forDB ~]# docker inspect mysqltest
...
"IPAddress": "172.17.0.2",
...

#连接容器的MySQL
[root@forDB ~]# mysql -uroot -p123456 -h 172.17.0.2
mysql> 

四、源码安装

源码安装最为费时费力,但用源码安装的软件是最适合本机器的。

MySQL源码安装可以参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html

MySQL8.0.32源码压缩包地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.32.tar.gz

也可在官网手动下载压缩包,再传到Linux上:

https://dev.mysql.com/downloads/mysql/

[root@server ~]# wget  https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.32.tar.gz

#添加mysql系统用户和组
[root@server ~]# groupadd mysql
[root@server ~]# useradd -r -g mysql -s /bin/false mysql

#解压解包,生成了mysql-8.0.32的文件,这就是源码包的所有内容
[root@server ~]# tar xvf mysql-boost-8.0.32.tar.gz

#安装编译器
[root@server ~]# yum install gcc gcc-c++ cmake -y

#安装编译过程中需要的库
[root@server ~]# yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils openssl-devel ncurses-devel libtirpc-1.3.3-0.el9.x86_64 rpcgen git -y
[root@server ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/CRB/x86_64/os/Packages/libtirpc-devel-1.3.3-0.el9.x86_64.rpm

#创建一个编译目录
[root@server ~]# cd mysql-8.0.32/
[root@server mysql-8.0.32]# mkdir bld
[root@server mysql-8.0.32]# cd bld

#准备编译
[root@server bld]# cmake .. -DWITH_BOOST=../boost/boost_1_77_0

#开始编译(建议将虚拟机内存调整为至少4G,以提高编译速度)
[root@server bld]# make    ########该过程很久,大概两三个小时,请耐心等待

#编译完成后,开始安装
[root@server bld]# make install

#安装好的文件在/usr/local/mysql中
[root@server bld]# cd /usr/local/mysql/

#创建一个存储数据文件的目录
[root@server mysql]# mkdir mysql-files
#修改所属者和所属组
[root@server mysql]# chown mysql:mysql mysql-files/
#修改权限
[root@server mysql]# chmod 750 mysql-files/

#初始化数据库(临时密码在最后的输出中:dU/sA5uleFrk)
[root@server mysql]# ./bin/mysqld --initialize --user=mysql
2023-02-10T14:59:13.708471Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dU/sA5uleFrk

#开启数据库的ssl加密功能
[root@server mysql]# ./bin/mysql_ssl_rsa_setup 

#启动mysqld服务
[root@server mysql]# ./bin/mysqld_safe --user=mysql &    #mysqld_safe防止误杀mysql服务,&表示后台运行

#用初始化产生的临时密码登录mysql
[root@server mysql]# ./bin/mysql -uroot -pdU/sA5uleFrk
mysql> 

#更改密码
mysql> ALTER USER root@localhost IDENTIFIED BY 'Admin123!';
mysql> exit

大功告成!
#停止mysql服务
[root@server mysql]# ./bin/mysqladmin -uroot -pAdmin123! shutdown
#若想用systemctl命令快捷启动mysql,可以操作如下:

[root@server mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
(若没有init.d文件,可以yum install chkconfig -y,就有了)
[root@server mysql]# systemctl daemon-reload
[root@server mysql]# systemctl start mysql

[root@server mysql]# systemctl status mysql
[root@server mysql]# systemctl stop mysql

over~

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

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

相关文章

一篇文章搞懂Cookie

目录 1 什么是Cookie 2 创建Cookie 3 浏览器查看Cookie 3.1 浏览器查看Cookie的第一种方式 3.2 浏览器查看Cookie的第二种方式 4 获取Cookie 5 修改Cookie 6 Cookie编码与解码 6.1 创建带中文Cookie 6.2 读取带中文Cookie 6.3 获取中文Cookie请求效果 6.4 解决创建和…

grafana9 使用消息模板配置发送企业微信(wecom)

一、grafana9告警设置: 1、进入告警消息模板介面 2、grafana 消息模板设置 template name : API_msg_tpl #名字随便 {{ define "myalert" }} **警报时间:** {{ .StartsAt.Format "2006-01-02 15:04:05 " }} {{ if gt (len .Labels) 0 }}**…

毕业5年,从月薪3000到年薪40w,我掌握了那些核心技能?(建议收藏)

大家好,我是静静~~是一枚一线大厂的测试开发工程师很多读者私信问我,自己时间不短了,随着工作年限的不断增长,感觉自己的技术水平与自己的工作年限严重不符。想跳槽出去换个新环境吧,又感觉自己的能力达不到心仪公司的…

Python_pytorch

python_pytorch 小土堆pytotch学习视频链接 from的是一个个的包(package) import 的是一个个的py文件(file.py) 所使用的一般是文件中的类(.class) 第一步实例化所使用的类,然后调用类中的方法(def) Dataset 数据集处理 import os from PIL impo…

本地(window)使用alist和RaiDav网盘挂载

一、背景 百度网盘的限速可能会让你转战阿里云盘,但是阿里云盘的缺点在于不能分享,网络上的资源都是通过各类网盘来分享的,这样就会让你可能同时拥有不同网盘的账号。 那么我们有没有一款工具,可以将这些网盘资源聚合一下&#xf…

RMQ--区间最值问题(在更)

RMQ(Range Minimum/Maximum Query)RMQ解决的问题ST算法 O(nlogn)线段树例题数列区间最大值最敏捷的机器人天才的记忆Frequent values总结(ST和线段树对比)RMQ解决的问题 RMQ是一个解决多个区间最值查询的算法,即区间最值查询&…

MySQL 创建数据表

在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性&#xff09…

LwIP系列--线程通信消息结构

一、目的如果有小伙伴移植过LwIP,那么你肯定知道在LwIP源码中tcp/ip协议栈是作为一个单独的线程运行的,那么就有这样一个问题,我们从mac外设上收到的以太网数据包是如何交给tcp/ip线程进行处理的,用户发送的数据又是如何经过协议栈…

不学Python迟早会被淘汰?Python真有这么好的前景?

最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Python的整体语言难度来讲又比Java简单的很多。尤其是在运维的应用中非常的广泛,所以之前出了…

Ubuntu20.04无线网卡驱动安装

文章目录一.未安装无线网卡驱动的Ubuntu20.04联网方式二.Ubuntu20.04无线网卡驱动安装UbuntuU盘启动盘安装好Ubuntu 20.04之后,发现没有无线网络,不过有线可以用。一.未安装无线网卡驱动的Ubuntu20.04联网方式 比较简单的就是直接拉一条网线进行连接&am…

【C语言】宏定义 结构体 枚举变量的用法

目录 一、数据类型 二、C语言宏定义 三、C语言typedef重命名 四、 #define与typedef的区别 五、结构体 六、枚举变量 补充学习一点STM32的必备基础知识 一、数据类型 二、C语言宏定义 关键字:#define 用途:用一个字符串代替一个数字,…

214 情人节来袭,电视剧 《点燃我温暖你》李峋同款 Python爱心表白代码,赶紧拿去用吧

大家好,我是徐公,六年大厂程序员经验,今天为大家带来的是动态心形代码,电视剧 《点燃我温暖你》同款的,大家赶紧看看,拿去向你心仪的对象表白吧,下面说一下灵感来源。 灵感来源 今天&#xff…

2023-02-10 - 6 聚合

当用户使用搜索引擎完成搜索后,在展示结果中需要进行进一步的筛选,而筛选的维度需要根据当前的搜索结果进行汇总,这就用到了聚合技术。聚合的需求在很多应用程序中都有所体现,例如在京东App中搜索“咸鸭蛋”,然后单击搜…

简述操作系统的系统中断

系统中断 系统中断是指 CPU 对系统发生的某个事件做出的一种反应:CPU 暂停正在执行的程序,保留现场后转去执行相应的处理程序,处理完该事件后再返回断点继续执行被打断的程序。 中断可以避免 CPU 轮询等待某条件成立,减小系统开…

2023-02-10 - 5 文本搜索

与其他需要精确匹配的数据不同,文本数据在前期的索引构建和搜索环节都需要进行额外的处理,并且在匹配环节还要进行相关性分数计算。本章将详细介绍文本搜索的相关知识。 本章首先从总体上介绍文本的索引建立过程和搜索过程,然后介绍分析器的…

离子阱量子计算机

1.新闻 2020年6月,科技制造企业霍尼韦尔(Honeywell)发布第一台离子阱量子计算机H0,它拥有64量子体积,它是IBM和谷歌同时期量子计算机的两倍。公司表示之所以能取得这一成就缘于他们2015年在一篇科学论文中展示的量子电…

Docker 容器与容器云读书笔记(一)

最近都没时间看书,闲暇之余看看书,写写笔记,记录一下这难得的时光。 docker容器的出现 2013年初, 一个名字从云计算领域横空出世,并在整个IT行业激起千层浪,这就是Docker。Docker选择容器作为核心和基础&…

与六年测试工程师促膝长谈,他分享的这些让我对软件测试工作有了全新的认知~

不知不觉已经从事软件测试六年了,2016年毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。六年的时间过得真快。长期的测试工作也让我对软件测试有了比较深入的认识。但是我至今还是一个底层的测试人员,我的看法都比较狭隘&am…

知识点滴 - 电源适配器接头的极性

使用各种电子设备,肯定要使用到电源适配器(adapter)。在电源适配器的标签上面一般会有几项是需要注意的。第一,是adapter的“INPUT/输入”,在中国通用的一般是AC100-240V~50-60Hz,这说明这个adapter可以在100V-240V的交流电压下面…

自动驾驶过冬,需要点燃“降本增效”的炉火

进入2023年,人们还在等待这个冬天的第一场雪,同时也在感叹暖冬已经成为了新的常态。但对自动驾驶产业而言,这个冬天似乎并没有那么暖。回顾2022年,全球自动驾驶行业裁员、倒闭、部门裁撤的消息不绝于耳。资本市场也逐渐放弃了自20…