Ubuntu24.04环境下非DOCKER方式安装Mysql5.7

公司有个系统是几年前开发的,当时数据库用的Mysql5.7,服务器是CENTOS6。如今CENTOS已经停止维护,为安全升级势在必行,考虑更换为Ubuntu24.04LTS。但这个系统虽几经升级,数据库依然是Mysql5.7,升级数据库版本工作量太大,而不升级的话Ubuntu24.04LTS已不支持Mysql5.7,这就意味着无法从官方仓库中直接下载安装。测试了用DOCKER方式安装Mysql5.7,但发现在高负载时性能存在瓶颈,尝试了优化仍未能解决问题,所以考虑还是要采用非DOCKER方式安装部署Mysql5.7。

  1. 安装基础库

sudo apt update

sudo apt install libaio1t64 libtinfo6 psmisc libnuma1 libmecab2

  1. 创建必要的符号链接

sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64.0.2 /usr/lib/x86_64-linux-gnu/libaio.so.1

sudo ln -sf /usr/lib/x86_64-linux-gnu/libncursesw.so.6.4 /usr/lib/x86_64-linux-gnu/libncurses.so.6

sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

  1. 下载 MySQL 5.7.40 DEB Bundle

Wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.40-1ubuntu18.04_amd64.deb-bundle.tar

解包

tar -xvf mysql-server_5.7.40-1ubuntu18.04_amd64.deb-bundle.tar

  1. 按顺序安装deb包

sudo dpkg -i mysql-common_5.7.40-1ubuntu18.04_amd64.deb

sudo dpkg -i mysql-community-client_5.7.40-1ubuntu18.04_amd64.deb

sudo dpkg -i mysql-client_5.7.40-1ubuntu18.04_amd64.deb

sudo dpkg -i mysql-community-server_5.7.40-1ubuntu18.04_amd64.deb

安装mysql-community-client时报错

后续两个包也都报错,存在libaio1包依赖问题。

强制安装 MySQL 包(忽略libaio1包依赖检查)

sudo dpkg -i --ignore-depends=libaio1 \

mysql-common_5.7.40-1ubuntu18.04_amd64.deb \

mysql-community-client_5.7.40-1ubuntu18.04_amd64.deb \

mysql-client_5.7.40-1ubuntu18.04_amd64.deb \

mysql-community-server_5.7.40-1ubuntu18.04_amd64.deb

还是报错,这次提示libtinfo5包依赖问题。

继续强制安装 MySQL 包(忽略两个包依赖检查)

sudo dpkg -i --ignore-depends=libaio1,libtinfo5 \

mysql-common_5.7.40-1ubuntu18.04_amd64.deb \

mysql-community-client_5.7.40-1ubuntu18.04_amd64.deb \

mysql-client_5.7.40-1ubuntu18.04_amd64.deb \

mysql-community-server_5.7.40-1ubuntu18.04_amd64.deb

这次应该是成功了,提示输入root用户密码

DEEPSEEK提示这步完成后要修复系统依赖

sudo apt --fix-broken install -y

测试发现选择修复会删除5.7.40 community-server 和community-client,然后自动安装client8.0,安装就失败了。

这步一定要跳过。

  1. 手动初始化 MySQL

创建必要的目录

sudo mkdir -p /var/lib/mysql

设置权限

sudo chown -R mysql:mysql /var/lib/mysql

  1. 创建 systemd 服务文件

sudo tee /etc/systemd/system/mysql.service <<EOF

Unit

Description=MySQL Community Server

After=network.target

Service

User=mysql

Group=mysql

ExecStart=/usr/sbin/mysqld

LimitNOFILE=5000

Install

WantedBy=multi-user.target

EOF

重载 systemd

sudo systemctl daemon-reload

  1. 启动 MySQL 服务

sudo systemctl start mysql

sudo systemctl enable mysql

验证安装

检查服务状态

sudo systemctl status mysql

可以看到mysql服务已经运行

验证版本

mysql --version

这里又报错了,缺少`NCURSES_TINFO_5.0.19991023'

这可能是因为Ubuntu 24.04自带的ncurses库(libtinfo6)虽然提供了`libtinfo.so.5`的符号链接,但实际库文件中的符号版本已经更新,不包含旧版本符号。因此需要安装一个包含旧版本符号的ncurses库。在Ubuntu 24.04中,官方仓库已经移除了libncurses5,因此只能下载兼容的deb包并安装。

8、安装兼容的 ncurses 5

下载兼容 ncurses 包:

wget http://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libtinfo5_6.1-1ubuntu1_amd64.deb

wget http://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libncurses5_6.1-1ubuntu1_amd64.deb

安装兼容包:

sudo dpkg -i libtinfo5_6.1-1ubuntu1_amd64.deb

sudo dpkg -i libncurses5_6.1-1ubuntu1_amd64.deb

修复符号链接:

sudo rm -f /usr/lib/x86_64-linux-gnu/libtinfo.so.5

sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.5.9 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

更新动态链接器缓存:

sudo ldconfig

9、测试连接

mysql -u root -p -e "SELECT VERSION();"

安装成功。

相关推荐
北冥有鱼被烹10 小时前
【微知】rokid glass如何开启无线adb进行APP安装
adb
STER labo1 天前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb
sjmaysee2 天前
CentOS7安装Mysql5.7(ARM64架构)
adb·架构
AtOR CUES2 天前
MySQL——表操作及查询
android·mysql·adb
mOok ONSC2 天前
mysql9.0windows安装
windows·adb
xxjj998a2 天前
Laravel8.x核心特性详解
数据库·mysql·adb
TeDi TIVE2 天前
Linux下MySQL的简单使用
linux·mysql·adb
TeDi TIVE3 天前
MySQL四种备份表的方式
mysql·adb·oracle
rleS IONS3 天前
Linux系统离线部署MySQL详细教程(带每步骤图文教程)
linux·mysql·adb
计算机安禾3 天前
【Linux从入门到精通】第40篇:LAMP/LNMP环境一键部署脚本实战
android·linux·adb