当前位置: 首页 > news >正文

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

2. 创建必要的符号链接

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

3. 下载 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

4. 按顺序安装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,安装就失败了。

这步一定要跳过。

5. 手动初始化 MySQL

# 创建必要的目录

sudo mkdir -p /var/lib/mysql

# 设置权限

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

6. 创建 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

7. 启动 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();"

安装成功。

http://www.dtcms.com/a/316574.html

相关文章:

  • 今日行情明日机会——20250805
  • 呼叫中心系统录音管理功能的应用
  • 初学docker
  • 深度拆解Dify:开源LLM开发平台的架构密码与技术突围
  • QUdpSocket发送组播和接受组播数据
  • 【类与对象(上)】C++封装之美:类与this指针解析
  • Nginx 单一端点上高效部署多个 LLM 模型
  • ES 模块动态导入
  • 海上电磁波传播:两径模型 vs 抛物方程模型传播损耗对比
  • 37.字典树
  • Redis集群模式下确保Key在同一Slot的实现方法
  • 按位运算 - C++
  • Velero 简介和部署
  • Linux进程信号——初步认识信号、信号的产生
  • 《UE教程》第一章第六回——迁移独立项目(资源)
  • IAR软件中变量监控的几种方法
  • 如何在 FastAPI 中优雅处理后台任务异常并实现智能重试?
  • Wireshark安装过程 Npcap Setup: Failed to create the npcap service: 0x8007007e.
  • 信息系统项目管理中的沟通管理实战精解
  • 智慧能源场景设备缺陷漏检率↓76%:陌讯多模态融合检测方案实战解析
  • SpringCloud学习------Gateway详解
  • Claude Code 完整指南:入门到应用
  • Qt事件系统学习笔记
  • 嵌入式软件架构设计之七:双机通信及通信协议之字符串协议
  • 大语言模型安全攻防:从提示词注入到模型窃取的全面防御浅谈
  • 与功能包相关的指令ros2 pkg
  • 女性成长赛道:现状与发展趋势|创客匠人
  • NumPy 中的取整函数
  • 如何在Android设备上删除多个联系人(3种方法)
  • Java项目:基于SSM框架实现的公益网站管理系统【ssm+B/S架构+源码+数据库+毕业论文+答辩PPT+远程部署】