centos7以mysql为例自建yum源

背景:两台centos7.9,1台190做yum源仓库,另一台191测试,ftp,阿里云镜像源,mysql8.0.27

1. 190机安装ftp

复制代码
yum install -y vsftpd
mkdir /var/ftp/mysql80

2. 去阿里云镜像源准备rpm包

复制代码
mkdir -p /data/files
cat >> /data/files/mysql_rpm.txt << EOF
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-server-8.0.27-1.el7.x86_64.rpm
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-client-8.0.27-1.el7.x86_64.rpm
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-common-8.0.27-1.el7.x86_64.rpm
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-libs-8.0.27-1.el7.x86_64.rpm
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm
EOF
wget -P /var/ftp/mysql80 -b -i /data/files/mysql_rpm.txt

注:

  1. wget -P 指定下载存放的位置,-b后台下载,会在指定目录下有一个wget日志文件可以看进度记录,-i 是按照文件的内容下载

3. 创建依赖关系

复制代码
yum install -y createrepo
createrepo /var/ftp/mysql80
ll /var/ftp/mysql80

4. 启动ftp

复制代码
systemctl start vsftpd 

5. 191机自建yum源文件

复制代码
vim /etc/yum.repos.d/mysql80.repo

mysql80

name=190ftp

baseurl=ftp://192.168.1.190/mysql80

gpgcheck=0

enabled=1

复制代码
# 刷新缓存
yum repolist
yum makecache

# 检查yum源里目前是否只有mysql80一个版本是启用状态
yum repolist enabled | grep -i mysql

注:

  1. baseurl是搭建的仓库地址
  2. gpgcheck是GPG校验模式,1为启用,yum会下载数字签名校验包的完整性和真实性,不通过时不安装,0不启用。使用的是阿里云的镜像源,默认信任。
  3. enabled是否启用这个版本,0不启用时yum不会下载
  4. 如果yum源里当前不是只有mysql80启用,则先禁用其他版本。如:yum-config-manager --disable mysql84-lts-community

6. 191机尝试安装

复制代码
yum install -y mysql-community-server

systemctl enable mysqld --now
systemctl status mysqld

# 获取密码
tail -n 20 /var/log/mysqld.log

# 登录
mysql -uroot -p

# 改密码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '新密码';

# 输入命令测试
show databases;

7.附加

7.1 官方源准备

复制代码
# 新背景:如果是使用mysql官方源,假设这次是mysql84(2026年后84版本才是长期支持版本),则将第2步改为如下,其他不变
mkdir /var/ftp/mysql84
yum install -y https://repo.mysql.com//mysql84-community-release-el7-4.noarch.rpm

# 检查目前yum源启用的包
yum repolist all |grep -i mysql

# 禁用其他包,启用mysql-8.4-lts-community,mysql-connectors-community和mysql-tools-8.4-lts-community
yum-config-manager --disable mysql-tools-community
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql-8.4-lts-community
yum-config-manager --enable mysql-connectors-community
yum-config-manager --enable mysql-tools-8.4-lts-community

# 校验启用的包是否是自己想要的
yum repolist enabled | grep -i mysql

7.2 下载mysql安装包并创建依赖

复制代码
# 仅下载不安装(yum安装完默认会删除安装包)
yum install -y --downloadonly mysql-community-server

# 根据下载日志,查找包的位置,然后一一复制到/var/ftp/mysql84
find / -name "mysql-community-client-plugins-8.4.10-1.el7.x86_64.rpm"

# 根据上一步得知存放目录在/var/cache/yum/x86_64/7/mysql-8.4-lts-community/packages/
cp /var/cache/yum/x86_64/7/mysql-8.4-lts-community/packages/*.rpm /var/ftp/mysql84

# 检查包
ll /var/ftp/mysql84

# 创建依赖
createrepo /var/ftp/mysql84

# 重启vsftp
systemctl restart vsftpd

至此用官方源搭建已经完成,后续使用可以看第五点"5. 191机自建yum源文件"

相关推荐
码农阿豪3 小时前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
数据库·sql·mongodb
秋饼3 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
秋名RG3 小时前
一条 SQL 语句在 MySQL 中的执行过程详解
数据库·sql·mysql
Canmag 兴隆磁性3 小时前
钕铁硼磁片取向方向检测自动化方案:从人工目检到流水线在线分选的工程实践
运维·数据库·自动化·工业自动化·钕铁硼·自动化检测·磁材料
月夏3 小时前
一个汉字存成了 6 个字节:我用 HEX 揪出 MySQL 双重编码
mysql·docker·全栈
yangmu32033 小时前
安全审批与日志审计:从“谁批准”到“谁执行”的全链路闭环
数据库
R²AIN SUITE3 小时前
多云或私有云环境怎么选项目管理工具?RainSuite等5种产品的8项部署验证
服务器·网络·数据库
隔振降噪研究员3 小时前
裁断机一响,楼板为什么会跟着抖?
大数据·linux·数据库·人工智能
软件派5 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法