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.cnf 中 socket 路径是否一致,或确认 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 官方文档。