ubuntu系统mysql安装

Ubuntu 26.04 系统 MySQL 8.0 TAR 包安装指南

本指南适用于 Ubuntu 26.04 LTS ,其他版本需验证,使用官方 Linux 通用二进制 TAR 包安装 MySQL 8.0。

此方式可自定义安装路径、数据目录,适合离线或需要精细控制的场景。

1. 系统环境准备

1.1 更新系统并安装基础工具

bash 复制代码
sudo apt update
sudo apt upgrade -y
sudo apt install -y wget tar perl

1.2 安装 libaio 异步 I/O 库

Ubuntu 26.04 中,libaio 的包名为 libaio1t64 ,但 MySQL 二进制仍查找 libaio.so.1,需创建软链接。

bash

bash 复制代码
# 查找实际库文件位置(版本号可能略有不同,以实际输出为准)
dpkg -L libaio1t64 | grep '.so'

# 进入库目录并创建软链接(示例路径,请根据上一步输出调整)
cd /usr/lib/x86_64-linux-gnu
sudo ln -sf libaio.so.1t64.0.2 libaio.so.1   # 版本号如不同请替换

# 更新动态链接器缓存
sudo ldconfig

# 验证是否成功
ldconfig -p | grep libaio
# 应同时出现 libaio.so.1 和 libaio.so.1t64

1.3 解决 libtinfo.so.5 依赖(若后续报错)

部分 MySQL 版本需要 libtinfo.so.5,但 Ubuntu 26.04 仅提供 libtinfo.so.6

若未报错可跳过此步 ;若后续运行 mysql 时提示缺少该库,则执行以下操作:

bash

bash 复制代码
# 查找 libtinfo.so.6 位置
find /usr/lib -name "libtinfo.so.6*"

# 创建软链接(路径以实际为准)
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
sudo ldconfig

2. 创建 MySQL 专用系统用户

bash

arduino 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

3. 下载 MySQL TAR 包

访问 MySQL 官方下载页 选择 Linux - Generic 版本,或使用 wget 下载。

先确认 glibc 版本(Ubuntu 26.04 通常 ≥ 2.28,可直接使用 glibc2.28 包):

bash

bash 复制代码
ldd --version   # 查看版本

以 8.0.24 为例(请替换为实际需要的版本号):

采用华为云的镜像加速下载

bash

bash 复制代码
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz

4. 解压并安装至 /usr/local

bash

bash 复制代码
sudo tar xf mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz -C /usr/local
sudo ln -s /usr/local/mysql-8.0.43-linux-glibc2.28-x86_64 /usr/local/mysql

5. 配置环境变量(将 MySQL 命令加入 PATH)

bash

bash 复制代码
echo 'export PATH=/usr/local/mysql/bin:$PATH' | sudo tee /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

6. 创建数据目录并设置权限

bash

bash 复制代码
sudo mkdir -p /data/mysql
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /data/mysql

7. 创建自定义配置文件 /etc/my.cnf

bash

ini 复制代码
sudo tee /etc/my.cnf <<-'EOF'
[mysqld]
datadir=/var/mysql/data/mysql
socket=/var/mysql/data/mysql.sock
log-error=/var/mysql/data/mysql.log
pid-file=/var/mysql/data/mysql.pid

[client]
socket=/data/mysql/mysql.sock
EOF

8. 初始化数据库

两种方式任选其一:

方式 A:生成随机临时密码(安全)

bash

css 复制代码
sudo mysqld --initialize --user=mysql --datadir=/var/mysql/data

# 查看临时密码(务必保存)
sudo grep password /var/mysql/data/mysql.log
# 输出示例:A temporary password is generated for root@localhost: K39lgjhHlu:U

方式 B:生成空密码(需立即设置新密码)

bash

css 复制代码
sudo mysqld --initialize-insecure --user=mysql --datadir=/data/mysql

9. 启动 MySQL 服务

9.1 创建 systemd 服务文件

bash

ini 复制代码
sudo tee /etc/systemd/system/mysql.service <<-'EOF'
[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --user=mysql
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

9.2 启动并设置开机自启

bash

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable mysql
sudo systemctl start mysql
sudo systemctl status mysql   # 检查运行状态

10. 设置 root 密码

根据初始化方式操作:

若采用方式 A(有临时密码)

bash

bash 复制代码
mysql -u root -p
# 输入临时密码,进入 MySQL 命令行

若采用方式 B(空密码)

bash

css 复制代码
mysql -u root --skip-password

进入后执行以下 SQL 设置新密码(将 '你的新强密码' 替换为实际密码):

sql

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新强密码';
FLUSH PRIVILEGES;
EXIT;

11. 验证安装

bash

bash 复制代码
mysql --version          # 应显示 8.0.x
mysql -u root -p -e "SHOW DATABASES;"

12. 常见问题及解决

12.1 error while loading shared libraries: libaio.so.1

原因libaio.so.1 软链接未正确创建或未执行 ldconfig

解决 :重新执行第 1.2 节步骤,确保 ldconfig 执行成功。

12.2 error while loading shared libraries: libtinfo.so.5

原因 :缺少终端库。

解决:按第 1.3 节创建软链接。

12.3 无法通过 socket 连接

检查 /etc/my.cnfsocket 路径是否一致,或确认 MySQL 服务已启动。

12.4 忘记 root 密码

停止服务,用 --skip-grant-tables 启动并重置:

bash

vbnet 复制代码
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root

在 MySQL 中执行:

sql

sql 复制代码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
EXIT;

然后重启服务:

bash

复制代码
sudo systemctl restart mysql

13. 总结

通过 TAR 包安装 MySQL 8.0 在 Ubuntu 26.04 上验证可行,关键点在于:

  • 正确安装 libaio1t64 并为其创建 libaio.so.1 软链接
  • 为可能的 libtinfo.so.5 需求创建软链接
  • 合理设置目录权限并使用 systemd 管理服务

本文档已涵盖全部步骤,可直接执行使用。如有其他问题,请参考 MySQL 官方文档。

相关推荐
程序员贺加贝2 小时前
别被 saveBatch 骗了:一次 MyBatis-Plus 批量插入性能排查
mysql
l1258652 小时前
# RAG上线评估指标体系:六大核心指标与压测实战全解析
数据库·人工智能·python·mysql·langchain·milvus
宠友信息2 小时前
IM系统开发技术路线分析,即时通讯源码助力快速搭建聊天应用
java·spring boot·redis·websocket·mysql·uni-app·vue
__zRainy__3 小时前
Node系列 · 数据库:单表查询
数据库·后端·mysql·node.js
AIMath~5 小时前
MVCC 与乐观锁,RR的本质
mysql
程序员夏洛6 小时前
MySQL 中的 MVCC 是什么?
数据库·mysql
山甫aa6 小时前
JavaWeb后端开发学习手册
java·开发语言·数据库·学习·mysql·springboot·web
梦想不只是梦与想7 小时前
MySQL 中的用户管理
数据库·mysql·用户管理
夜雪一千18 小时前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb