【香菇带你学Mysql】Linux下Mysql8使用二进制安装包安装教程【建议收藏】

news2025/1/12 20:57:12

⚠️ 本人声明:本教程可100%复现​

网上看了很多Mysql8安装的方式,基本上都是都过一个yum方式直接访问公网下载依赖资源安装的。

但是在企业内部一般并不允许生产环境直接连接公网。针对此情况。本文将介绍如何在内网环境下使用二进制安装包本地安装方式来部署Mysql8。

使用二进制安装包安装相对编译安装简单快速很多

不过,若想使用编译安装Mysql8,请参考香菇另外一篇文章:mysql8.0编译安装图文教程

1. 本次实践介绍

1.1 本次实践规划

本人使用环境如下

Mysql8使用二进制安装包安装请尽量保证主机内存大于1G。存储空间大于20G。

hostnameIP地址系统版本内核版本
master192.168.129.139BigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)4.19.90-2107.6.0.0100.oe1.bclinux.x86_64

1.2 本次实践简介

1.本次实践环境建议个人测试环境,生产环境请谨慎操作

2.本次实践为在在BClinux for euler 21.10下使用rpm包安装Mysql8.3版本

3.请尽量保证主机内存大于1G。存储空间大于20G。

1.3 二进制安装包安装Mysql的优缺点

特点优点缺点
安装速度- 快速安装,无需编译
- 预编译的包通常为常见配置优化
- 可能不是针对特定硬件优化- 不支持某些特殊配置需求
兼容性- 适用于多种操作系统版本- 可能与系统上的其他软件包冲突
系统资源- 通常占用较少的磁盘空间- 性能可能不如从源代码编译的版本
自定义配置- 配置较为简单- 缺乏灵活性,不能在安装过程中进行深度定制
更新维护- 更新方便,通常通过包管理器自动更新- 自动更新可能导致服务中断
安全性- 可以利用操作系统的安全更新- 可能包含已知但未修复的安全漏洞

2. 本地准备环境配置

2.1 卸载已经安装的数据库

检查linux是否安装了mariadb和mysql数据库,新系统可能会自带mariadb数据库,mariadb数据库是MySQL的分支

当一个系统已经安装了MariaDB时,直接尝试安装MySQL可能会导致冲突

  1. 包依赖冲突:MariaDB和MySQL的某些文件可能具有相同的名称或路径,这会导致包管理器无法正确处理依赖关系。
  2. 服务冲突:两个数据库服务可能尝试监听相同的端口(通常是3306),这会导致服务启动失败或不稳定。
  3. 配置冲突:MariaDB和MySQL的配置文件可能位于相同的位置,比如/etc/my.cnf,这会使得配置混乱。
# 检查是否安装了mariadb
yum list installed | grep mariadb*
# 卸载mariadb
yum remove mariadb*
# 检查是否安装了mysql
yum list installed | grep mysql*
# 卸载mysql
yum remove mysql*

执行过程如下

[root@localhost ~]# yum list installed | grep mariadb*
mariadb-connector-c.x86_64                        3.0.6-7.oe1                                @anaconda
[root@localhost ~]# yum remove mariadb*
依赖关系解决。
=====================================================================================================
 Package                                             Architecture                           Version                                          Repository                                 Size
=====================================================================================================
移除:
 mariadb-connector-c                                 x86_64                                 3.0.6-7.oe1                                      @anaconda                                 414 k
移除依赖的软件包:
 rsyslog-relp                                        x86_64                                 8.2006.0-6.oe1                                   @anaconda                                  63 k
 rsyslog-help                                        noarch                                 8.2006.0-6.oe1                                   @anaconda                                 7.0 M

事务概要
=====================================================================================================
移除  9 软件包
将会释放空间:14 M
确定吗?[y/N]: Y
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                              1/1 
  运行脚本: rsyslog-relp-8.2006.0-6.oe1.x86_64                                                                                                                                           1/1 
  删除    : rsyslog-relp-8.2006.0-6.oe1.x86_64                                                                                                                                           1/9                                                                                             9/9 
已移除:
  libestr-0.1.11-1.oe1.x86_64        libfastjson-0.99.8-3.oe1.x86_64   libnet-1.2-1.oe1.x86_64              librelp-1.2.16-3.oe1.x86_64          mariadb-connector-c-3.0.6-7.oe1.x86_64  
  net-snmp-libs-1:5.9-3.oe1.x86_64   rsyslog-8.2006.0-6.oe1.x86_64     rsyslog-help-8.2006.0-6.oe1.noarch   rsyslog-relp-8.2006.0-6.oe1.x86_64  
完毕!
[root@localhost ~]# yum list installed | grep mysql*
[root@localhost ~]# yum remove mysql*
未找到匹配的参数: mysql*
没有软件包需要移除。
依赖关系解决。
无需任何处理。
完毕!

2.2 配置yum源

注释:若Linux主机可以访问公网,则只需要配置好公网repo源即可,若无法连接公网,则需要配置好本地repo源。不同类型用户可能需求不一样。这里默认大家使用本地iso搭建镜像yum源。

其余情况请参考文章(已经足够详细)yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)

当服务器无法访问公网或者所需要依赖无法在公网获取,我们可以通过

使用挂载本地iso镜像来获取我们需要的rpm包和依赖

2.2.1 本机单机yum源配置

此处以挂载BClinux for openeuler 21.10镜像为例,每个人操作系统型号不同,请选择自己需要的版本

切记选择来源安全可靠的镜像下载

将下载好后的镜像上传到/mnt

 ls

/mnt目录下创建文件夹 BClinux

 mkdir BClinux

然后输入下面命令进行挂载

mount -o loop /mnt/BCLinux-for-Euler-21.10-everything-x86_64.iso /mnt/BClinux

下个步骤中,关闭selinux需要重启,会导致本命令失效,需要重新执行即可

2.2.2 repo文件配置

进入/etc/yum.repos.d/目录,

将之前的repo文件进行备份

# 进入repo配置文件
cd /etc/yum.repos.d/
# 将原来的repo文件进行备份
 mv /etc/yum.repos.d/* *.bak

然后创建新的repo源,输入以下命令

# 复制下面的脚本输入
 echo "
> [local]
> name=bendiyum
> baseurl=file:///mnt/BClinux/
> enabled=1
> gpgcheck=0" > local.repo

## 执行
yum clean all
yum makecache
yum repolist

配置完成

yum makecache
yum repolist

尝试使用yum

yum install -y tree

image-20230312171758375

本地yum源配置完成

2.3 关闭防火墙和selinux

关闭防火墙

# 查看防火墙是状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
#取消开机自启动
systemctl disable firewalld

关闭selinux

sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config
## 重启后生效

3. Mysql安装详解

本次香菇安装的Mysql版本为Mysql8.3.0

3.1 官网下载合适安装包

Mysql官网链接:https://downloads.mysql.com/archives/community/

查看本地主机glibc的版本

ldd --version

image-20240811223316994

根据官网提示信息选择合适的版本下载

image-20240811223407524

此处我选择的是mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz版本

大家的主机若可以直接访问公网,也可以通过在主机上输入命令的方式下载

cd /usr/local/src/ && wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz

image-20240811223951929

否则,可以下载到本地,在上传到linux主机对应目录

3.2 安装Mysql8.3

3.2.1 配置安装路径

进入Mysql安装包下载的目录,将其移动到/usr/local/src下面

mv mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz /usr/local/src/

解压文件

sudo tar xvJf /usr/local/src/mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz

image-20240811224237938

修改文件名称

sudo mv  mysql-8.3.0-linux-glibc2.28-x86_64 mysql-8.3.0

image-20240811224533561

创建mysql相关文件夹

sudo mkdir -p /mysql/data  # 数据存储
sudo mkdir -p /mysql/log    # 日志存储
sudo mkdir -p /mysql/tmp    # 临时文件

image-20240811225442168

3.2.2 创建Mysql账户并赋权
# 新增主机用户Mysql
useradd -m mysql
# 配置密码,此处我设置的密码为Xianggu123
echo Xianggu123 |  passwd --stdin  mysql

image-20240811225341765

赋权给Mysql用户mysql安装权限和数据存放路径权限

chown -R mysql /usr/local/src/mysql-8.3.0
chown -R mysql:mysql  /mysql/data
chown -R mysql:mysql /mysql/log
chown -R mysql:mysql /mysql/tmp

image-20240811225722520

3.2.3 安装Mysql
在安装目录下执行
sudo /usr/local/src/mysql-8.3.0/bin/mysqld --user=mysql --basedir=/usr/local/src/mysql-8.3.0 --datadir=/mysql/data/ --initialize

image-20240811230010322

记住初始化密码

image-20240811230030571

3.2.4 Mysql配置文件修改

正常情况下是没有这个文件的,执行保存之后会自动创建

创建并编辑my.cnf文件

vi /etc/my.cnf

配置文件内容如下(文件路径记得改为自己的)

[mysqld]
# 设置 MySQL 服务的端口号,默认为 3306
port = 3306

# 设置 MySQL 服务的安装目录
basedir = /usr/local/src/mysql/

# 设置 MySQL 数据库的数据存放目录
datadir = /mysql/data

# 设置允许连接的最大客户端数量
max_connections = 200

# 设置每个连接使用的缓冲区大小
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M

# 启用查询缓存
#query_cache_type = 1
#query_cache_size = 16M

# 日志相关配置
log_error = error.log
#slow_query_log = 1
#slow_query_log_file = /mysql/log/slow_query.log
#long_query_time = 10  # 超过 10 秒的查询被视为慢查询

[mysqld]
# 设置默认字符集
character-set-server = utf8mb4

# 设置连接字符集
collation-server = utf8mb4_unicode_ci
socket=/tmp/mysql.sock

[mysqld]
# InnoDB 缓冲池大小
innodb_buffer_pool_size = 128M

# InnoDB 日志文件大小
innodb_log_file_size = 64M

# InnoDB 日志文件数量
innodb_log_files_in_group = 2

# InnoDB 自动扩展表空间
innodb_autoextend_increment = 64M

3.2.5 将mysql注册为系统服务
sudo cp -a /usr/local/src/mysql-8.3.0/support-files/mysql.server  /usr/lib/systemd/system
chown 775 /usr/lib/systemd/system/mysql.server 

# 设置启动mysql
systemctl start mysql
# 设置开机自动启动
systemctl enable mysql
3.2.6 将Mysql添加到系统环境变量中
# 编辑文件
vi /etc/profile
# 在末尾添加下面内容
export PATH=$PATH:/usr/local/src/mysql/bin

4. Mysql服务初始化配置

4.1 初始化Mysql

首先将mysql相关路径的权限赋给mysql主机用户

chown -R mysql:mysql /mysql

启动Mysql服务

systemctl start mysql

查看mysql状态

systemctl status mysql

image-20240814222833279

进入mysql主机用户,登录mysql

# 切换到mysql用户
su - mysql
# 登录mysql
mysql -uroot -p

image-20240814223330716

更改初始密码

#我这里改成了Xianggu@123
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Xianggu@123'; 
flush privileges;

设置允许远程登录

use mysql;
# 允许所有主机登录root
update  user set  host="%" where user='root'
flush privileges;

image-20240814230105602

4.2 远程连接测试

选择一个常用的数据库登录工具,此处我用的是VScode

image-20240814231828006

可以看到已经连接成功

image-20240814231928280

编写sql语句进行测试

create database xianggu;
use xianggu;
create table student (name varchar(50),age int,id int);

image-20240814232424536

image-20240814232411324

5.总结

经过一系列的操作,我们成功地在内网环境中使用二进制安装包完成了 MySQL 8.3 版本的安装和基本配置。通过本教程,您应该能够了解如何在没有公网访问的情况下进行 MySQL 的安装,这对于企业内部的部署来说非常实用。

安装步骤回顾:

  1. 环境准备:确认系统内存和存储空间满足要求,确保主机至少有 1GB 的内存和 20GB 的存储空间。
  2. 卸载旧版数据库:避免与已安装的 MariaDB 或 MySQL 发生冲突。
  3. 配置本地 yum 源:如果服务器无法访问公网,可以使用本地 ISO 镜像作为 yum 源来获取所需的 RPM 包和依赖。
  4. 安装 MySQL:下载并解压 MySQL 的二进制安装包,创建必要的文件夹,创建 MySQL 用户并赋予相应的权限。
  5. 初始化 MySQL 服务:通过指定用户、安装目录和数据目录等参数初始化 MySQL 服务,并记录生成的初始密码。
  6. 配置 MySQL:创建并编辑 my.cnf 文件,对 MySQL 进行必要的配置,如端口、数据目录、最大连接数等。
  7. 注册为系统服务:将 MySQL 注册为系统服务,并设置开机自启。
  8. 环境变量配置:将 MySQL 的二进制路径添加到系统环境变量中。
  9. 服务初始化:设置初始密码,开启远程连接功能,并启动 MySQL 服务。

使用二进制安装包安装 MySQL 是一种快速简便的方法,特别适合于那些无法直接连接公网的内网环境。这种方式不仅简化了安装流程,还减少了编译的时间。通过以上步骤,您可以轻松地在 BigCloud Enterprise Linux For Euler 21.10 上安装并配置 MySQL 8.3 版本,从而满足您的数据库需求。

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

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

相关文章

【多线程】乐观/悲观锁、重量级/轻量级锁、挂起等待/自旋锁、公平/非公锁、可重入/不可重入锁、读写锁

文章目录 乐观锁和悲观锁重量级锁和轻量级锁挂起等待锁和自旋锁公平锁和非公平锁可重入锁和不可重入锁读写锁相关面试题 锁:非常广义的概念,不是指某个具体的锁,所有的锁都可以往这些策略中套 synchronized:只是市面上五花八门的锁…

新形势下职业教育云计算人才培养策略

一、引言 在数字化转型的浪潮中,云计算作为核心技术之一,正在深刻影响着各行各业的发展。职业教育作为培养技术技能型人才的重要途径,需要紧跟时代步伐,不断优化和创新云计算人才培养模式,以满足社会对云计算人才的迫…

基于MyBatis-plus的SpringBoot开发

目录 一、SpringBoot整合mybatis 二、SpringBoot整合mybatis-plus 1、什么是mybatis-plus? 2、mybatis-plus的特性 3、mybatis-plus的使用 (1)编写注解配置实体类与关系表映射关系 (2)mapper层 (3…

Sandbox: rsync.samba(80134) deny(1) file-write-create

Xcode15运行报错:Sandbox: rsync.samba(80134) deny(1) file-write-create/xxx/xxx 如下图: 解决办法: Build Settings 搜索 sandbox,把 Build Options 中的 User Script Sandboxing改为 NO

iPhone很多空相簿怎么删除:简化你的照片库

随着我们使用iPhone拍摄越来越多的照片和视频,管理这些内容的需求也随之增加。创建相簿是组织照片的一种便捷方式,但随着时间的推移,可能会产生许多未使用或空的相簿。这些空相簿不仅占用了照片应用的界面空间,也让照片库显得更加…

代码随想录算法训练营第四十二天|广度优先搜索理论基础、岛屿数量:深搜版、岛屿数量:广搜版

广度优先搜索理论基础 广搜(bfs)是一圈一圈的搜索过程。因为广搜是从起点出发,以起始点为中心一圈一圈进行搜索,一旦遇到终点,记录之前走过的节点就是一条最短路。 广搜的过程:我们从图中可以看出&#x…

HTML+CSS进阶用法(上)——平面转换、渐变、空间转换

欢迎来到CSS变换的世界,这里充满了创意和可能性。在本篇博客中,我们将一起学习如何使用transform属性来实现各种平面和空间转换效果,包括位移、旋转、缩放,以及如何通过渐变和动画来增强我们的网页设计。无论你是初学者还是有经验…

【区块链+金融服务】基于区块链的区域股权金融综合服务平台 | FISCO BCOS应用案例

区域性股权市场是我国资本市场的重要组成部分,是多层次资本市场体系的基石。区块链技术与区域性股权市场 分散特征天然匹配,从新型金融基础设施层面为场外参与各方提供公共的可信服务,以技术手段完善市场基础条 件,弥补区域性短板…

仿RabbiteMq实现简易消息队列正式篇(需求分析)

TOC 目录 MQ的实现方法 RabbitMq中的相关概念 消息队列系统模块划分 总体划分 服务端模块 数据管理模块 虚拟机数据管理模块 交换机路由模块 消费者管理模块 信道(通信)管理模块 连接管理模块 服务端BrokerServer模块 客户端模块 消费者管…

iPhone 16 机模视频曝光,五种颜色各有千秋

科技博主的最新视频分享了苹果 iPhone 16 标准版的机模上手体验。 视频中展示了五种颜色的 iPhone 16:深邃的蓝色、柔和的粉色、纯净的白色、经典的黑色和生机勃勃的绿色。 与 iPhone 15 相比,iPhone 16 弃用了黄色,新增了白色,…

等保测评中的供应链安全管理:构建安全的数字生态

在数字化转型的浪潮中,供应链已成为企业运营的核心环节,同时也是信息安全的潜在脆弱点。等保测评,作为我国信息安全等级保护制度的重要组成部分,对供应链安全管理提出了明确的要求,旨在构建一个安全、可靠的数字生态。…

Vue 3+Vite+Eectron从入门到实战系列之(六)一工作台界面开发及实现响应式

工作台&#xff0c;是每个后台系统必备的&#xff0c;也是管理系统的首页。这次我们来实现一个工作台&#xff0c;并适配他的响应性 实现效果 代码实现 <template><div class"dashboard"><el-row :gutter"20"><el-col class"mb…

小程序学习day06-wx:for续、WXSS模版样式、rpx尺寸单位、@import、全局样式与局部样式、全局配置

25、wx&#xff1a;for续 &#xff08;5&#xff09;手动指定索引和当前项的变量名 1&#xff09;使用wx:for-index可以指定当前循环项的索引变量名 2&#xff09;使用wx:for-item可以指定当前项的变量名 &#xff08;6&#xff09;wx:key的使用 类似于Vue列表渲染中的:key&a…

2025考研西安电子科技大学马克思主义理论经验贴

学长从西安电子科技大学马克思主义理论专业毕业&#xff0c;现从事高校思政课工作&#xff0c;拥有三年西安电子科技大学马理论考研辅导经验&#xff0c;现写出2025西安电子科技大学马克思主义理论经验贴供大家参考。 一、选学校 选学校首先考虑的是就业&#xff0c;因为咱们…

【书生大模型实战营(暑假场)】基础任务四 InternLM+LlamaIndex RAG 实践

基础任务四 InternLMLlamaIndex RAG 实践 任务文档视频Retrieval-Augmented Generation for Large Language Models: A Survey 文章目录 基础任务四 InternLMLlamaIndex RAG 实践1 理解RAG&#xff0c;使用 RAG1.1 RAG技术概览1.2 RAG工作原理1.3 向量数据库 Vector-DB1.4 RAG…

多态(二)

1. final &#xff1a;修饰虚函数&#xff0c;表示该虚函数不能再被重写 class Car { public:virtual void Drive() final {} }; class Benz :public Car { public:virtual void Drive() {cout << "Benz-舒适" << endl;} }; 2. override: 检查派生类…

如何选取网络中间的输出?并极简方法可视化

文章目录 一、提供几种方法1. 直接修改模型的 forward 方法&#xff1a;2. 使用 hook 函数&#xff1a;3. 直接访问模型的子模块&#xff1a;4. 使用 nn.Sequential 来提取中间层&#xff1a; 2. 如何选择方法3. 实际操作——提取特征并可视化1. 可视化2. 提取特征 一、提供几种…

无人机之电池注意事项

1、外场作业时&#xff0c;电池一定要放置在阴凉处&#xff0c;避免太阳直射&#xff1b; 2、刚作业完的电池发热严重时&#xff0c;请降至室温再充电&#xff1b; 3、注意电池状态&#xff0c;一旦发现电池出现鼓包、漏液等现象&#xff0c;必须马上停止使用&#xff1b; 4…

基于springboot的医院资源管理系统

TOC springboot158基于springboot的医院资源管理系统 第1章 绪论** 1.1 课题背景 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供…

Redmi 13C 5G 红米13R 5G 解锁BL 降级 MIUI 秒解锁BL 澎湃OS 降级

机型名称 &#xff1a;Redmi 13C 5G/ Redmi 13R 5G/ POCO M6 5G 机型代号 &#xff1a;air HyperOS 降级MIUI 14 澎湃OS 或者miui都可以秒解锁BL&#xff0c; Redmi 13C 5G 红米13R 5G 解锁BL 降级 MIUI 秒解锁BL 澎湃OS 降级,手机ROM - Powered by Discuz!点击上方 下载对…