Ubuntu 24.04 LTS 离线安装 MySQL 8.0.44 完整指南

本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。

在某些生产环境中,服务器无法连接互联网,需要采用离线方式安装MySQL。本文详细介绍在Ubuntu 24.04 LTS系统上离线安装MySQL 8.0.44的完整步骤,包括下载安装包、安装依赖项、按顺序安装MySQL组件以及后续配置,帮助运维人员在离线环境下成功部署MySQL数据库。

离线安装概述

离线安装MySQL适用于以下场景:

  • 内网环境或安全要求较高的生产环境
  • 无法访问外网或需要严格网络隔离的服务器
  • 需要离线部署数据库服务的场景

与在线安装相比,离线安装需要手动下载MySQL安装包和依赖项,并按照正确的顺序进行安装,但能够保证在离线环境下正常运行。

一、下载离线安装包

1. 下载MySQL安装包

从MySQL官方网站下载适用于Ubuntu 24.04的MySQL 8.0.44离线安装包。

下载地址

安装包名称

mysql-server_8.0.44-1ubuntu24.04_amd64.deb-bundle.tar

注意事项

  • 确保选择与操作系统架构匹配的版本(amd64或arm64)
  • 建议下载稳定版本,避免使用测试版本
  • 下载完整的deb-bundle包,包含所有必要的组件

2. 解压安装包

下载完成后,解压该tar包:

bash
tar -xf mysql-server_8.0.44-1ubuntu24.04_amd64.deb-bundle.tar

解压后,您会得到以下文件:

mysql-common_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-client-plugins_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-client-core_8.0.44-1ubuntu24.04_amd64.deb
libmysqlclient21_8.0.44-1ubuntu24.04_amd64.deb
libmysqlclient-dev_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-server-core_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-client_8.0.44-1ubuntu24.04_amd64.deb
mysql-client_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-server_8.0.44-1ubuntu24.04_amd64.deb
mysql-server_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-server-debug_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-test_8.0.44-1ubuntu24.04_amd64.deb
mysql-community-test-debug_8.0.44-1ubuntu24.04_amd64.deb
mysql-testsuite_8.0.44-1ubuntu24.04_amd64.deb

说明

  • 基础组件(mysql-common、client-plugins等)是必需的
  • server-debug、test等组件为可选,可根据实际需求选择是否安装

二、安装依赖项

在安装MySQL之前,需要先安装必要的依赖包。MySQL 8.0需要以下两个依赖包:

1. 下载依赖包

libaio1t64(注意:Ubuntu 24.04使用的是libaio1t64,不是libaio1):

libmecab2

注意事项

  • Ubuntu 24.04使用libaio1t64(64位版本),而不是libaio1
  • 确保下载与系统架构匹配的依赖包版本
  • 如果已联网,也可以使用 apt download 命令下载依赖包

2. 安装依赖包

将依赖包上传到服务器后,使用以下命令安装:

bash
sudo dpkg -i libaio1t64_0.3.113-6build1.1_amd64.deb
sudo dpkg -i libmecab2_0.996-14ubuntu4_amd64.deb

验证依赖包安装

bash
dpkg -l | grep libaio1t64
dpkg -l | grep libmecab2

如果命令显示已安装的包信息,说明依赖包安装成功。

三、按顺序安装MySQL组件

MySQL的各个组件之间存在依赖关系,必须按照正确的顺序进行安装。按照以下顺序逐个安装:

1. 安装顺序

按照以下顺序逐个安装MySQL组件:

bash
# 1. 安装公共组件
sudo dpkg -i mysql-common_8.0.44-1ubuntu24.04_amd64.deb

# 2. 安装客户端插件
sudo dpkg -i mysql-community-client-plugins_8.0.44-1ubuntu24.04_amd64.deb

# 3. 安装客户端核心组件
sudo dpkg -i mysql-community-client-core_8.0.44-1ubuntu24.04_amd64.deb

# 4. 安装MySQL客户端库
sudo dpkg -i libmysqlclient21_8.0.44-1ubuntu24.04_amd64.deb

# 5. 安装MySQL开发库(可选,如果需要开发,使用8.0.44版本)
sudo dpkg -i libmysqlclient-dev_8.0.44-1ubuntu24.04_amd64.deb

# 6. 安装服务器核心组件
sudo dpkg -i mysql-community-server-core_8.0.44-1ubuntu24.04_amd64.deb

# 7. 安装MySQL社区客户端
sudo dpkg -i mysql-community-client_8.0.44-1ubuntu24.04_amd64.deb

# 8. 安装MySQL客户端
sudo dpkg -i mysql-client_8.0.44-1ubuntu24.04_amd64.deb

# 9. 安装MySQL社区服务器
sudo dpkg -i mysql-community-server_8.0.44-1ubuntu24.04_amd64.deb

# 10. 安装MySQL服务器
sudo dpkg -i mysql-server_8.0.44-1ubuntu24.04_amd64.deb

可选组件(根据需要安装):

bash
# 服务器调试版本(可选)
sudo dpkg -i mysql-community-server-debug_8.0.44-1ubuntu24.04_amd64.deb

# 测试套件(可选)
sudo dpkg -i mysql-community-test_8.0.44-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-test-debug_8.0.44-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-testsuite_8.0.44-1ubuntu24.04_amd64.deb

注意事项

  • 如果解压后的文件中有 libmysqlclient-dev_8.0.36-2ubuntu3_amd64.deb(旧版本),请使用 libmysqlclient-dev_8.0.44-1ubuntu24.04_amd64.deb(新版本),避免版本冲突
  • 必须按照上述顺序安装,以确保依赖关系正确

2. 处理依赖问题

如果在安装过程中遇到依赖问题,可以使用以下命令修复:

bash
sudo apt-get install -f

这个命令会自动安装缺失的依赖项(如果有网络连接)或提示需要手动解决的依赖问题。

3. 批量安装方式(可选)

如果您确认所有依赖都已满足,也可以使用通配符批量安装:

bash
sudo dpkg -i mysql-*.deb

但建议还是按照顺序逐个安装,以便更好地跟踪安装过程和排查问题。

四、配置MySQL

1. 初始化MySQL服务

安装完成后,MySQL服务应该已经自动启动。检查服务状态:

bash
sudo systemctl status mysql

如果服务未启动,手动启动:

bash
sudo systemctl start mysql
sudo systemctl enable mysql

2. 获取初始root密码

MySQL 8.0在首次安装时会生成一个临时root密码。查看初始密码:

bash
sudo grep 'temporary password' /var/log/mysqld.log

或者:

bash
sudo cat /var/log/mysql/error.log | grep "temporary password"

3. 登录MySQL并修改密码

使用获取的临时密码登录:

bash
mysql -u root -p

登录后,立即修改root密码:

sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!';
FLUSH PRIVILEGES;

密码策略要求

  • MySQL 8.0默认要求密码至少8个字符
  • 必须包含大写字母、小写字母、数字和特殊字符

如果需要使用简单密码(不推荐生产环境),可以先修改密码策略:

sql
-- 查看密码策略
SHOW VARIABLES LIKE 'validate_password%';

-- 降低密码复杂度要求(仅用于测试环境)
SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=4;

4. 创建新用户(可选)

创建新用户用于日常操作:

sql
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

允许远程连接(生产环境需要配置防火墙):

sql
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

5. 验证安装

验证MySQL安装是否成功:

bash
# 查看MySQL版本
mysql --version

# 查看MySQL服务状态
sudo systemctl status mysql

# 测试连接
mysql -u root -p -e "SELECT VERSION();"

五、常见问题排查

1. 依赖问题

如果安装过程中提示缺少依赖:

bash
# 查看缺少的依赖
sudo apt-get install -f

# 如果无法自动安装,需要手动下载缺失的依赖包

2. 服务启动失败

如果MySQL服务启动失败:

bash
# 查看错误日志
sudo tail -f /var/log/mysql/error.log

# 检查配置文件
sudo mysql --print-defaults

# 检查端口占用
sudo netstat -tlnp | grep 3306

3. 权限问题

如果遇到权限问题:

bash
# 检查MySQL数据目录权限
sudo ls -la /var/lib/mysql

# 修复权限(谨慎使用)
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql

4. 端口冲突

如果3306端口被占用:

bash
# 查看占用端口的进程
sudo lsof -i :3306

# 或者修改MySQL端口(编辑配置文件)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 修改 port = 3306 为其他端口

六、后续配置建议

1. 配置MySQL参数

编辑MySQL配置文件以优化性能:

bash
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

常用配置项:

ini
[mysqld]
# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 连接数设置
max_connections=200
max_connect_errors=10

# 缓冲池大小(根据内存调整)
innodb_buffer_pool_size=1G

# 日志设置
log-error=/var/log/mysql/error.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=2

修改配置后重启MySQL:

bash
sudo systemctl restart mysql

2. 配置防火墙(如需要)

如果需要允许远程访问:

bash
# UFW防火墙
sudo ufw allow 3306/tcp

# 或iptables
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

3. 配置备份策略

建议配置定期备份:

bash
# 创建备份脚本
sudo vi /usr/local/bin/mysql-backup.sh
bash
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u root -p'password' --all-databases > $BACKUP_DIR/mysql_backup_$DATE.sql
# 保留最近7天的备份
find $BACKUP_DIR -name "mysql_backup_*.sql" -mtime +7 -delete
bash
# 添加执行权限
sudo chmod +x /usr/local/bin/mysql-backup.sh

# 添加到crontab(每天凌晨2点备份)
sudo crontab -e
# 添加:0 2 * * * /usr/local/bin/mysql-backup.sh

总结

通过以上步骤,可以在Ubuntu 24.04 LTS系统上成功离线安装MySQL 8.0.44。关键步骤包括:

  1. 下载安装包:从MySQL官方下载适合Ubuntu 24.04的安装包
  2. 安装依赖项:确保libaio1t64和libmecab2已安装(注意Ubuntu 24.04使用libaio1t64而非libaio1)
  3. 按顺序安装:按照正确的依赖顺序安装MySQL组件
  4. 配置服务:设置root密码,配置MySQL服务
  5. 验证安装:确认MySQL正常运行
  6. 后续优化:根据实际需求配置参数和备份策略

离线安装MySQL虽然步骤相对复杂,但能够满足内网环境或安全隔离场景的需求。建议在实际部署前在测试环境验证所有步骤,确保生产环境部署顺利。同时,务必遵循安全最佳实践,配置强密码、限制远程访问权限,并定期进行数据备份。

Docker离线安装完整指南
Ubuntu 24.04 将第二块硬盘挂载到 /opt 完整指南