Ubuntu 24.04下MySQL 8.4.3 LTS离线安装全攻略
### 摘要
本文旨在指导用户如何在Ubuntu 24.04操作系统上进行MySQL 8.4.3 LTS版本的离线安装。文章详细阐述了部署环境的配置要求,包括所需软件、系统配置以及资源需求。同时,提供了MySQL 8.4.3 LTS的下载地址和版本选择指南。文章重点介绍了安装流程,包括上传MySQL安装包、解压文件、创建专用用户和用户组、设置文件夹权限、安装libaio依赖以解决Ubuntu 24.04系统上的特定问题、数据库初始化、配置my.cnf文件、设置环境变量、启动MySQL服务、登录MySQL以及进行相关设置,如创建root用户、修改密码和授权等。此外,文章还提供了一个快速部署脚本,旨在帮助用户简化部署流程,快速完成MySQL的离线安装。
### 关键词
Ubuntu, MySQL, 离线安装, 部署脚本, 系统配置
## 一、环境配置与前期准备
### 1.1 部署环境配置要求
在开始MySQL 8.4.3 LTS的离线安装之前,确保您的Ubuntu 24.04系统满足以下部署环境配置要求。这些要求不仅有助于确保安装过程的顺利进行,还能保证MySQL数据库在生产环境中的稳定性和性能。
- **操作系统**:Ubuntu 24.04 LTS
- **硬件要求**:
- 至少2 GB的RAM
- 至少10 GB的可用磁盘空间
- 处理器:建议使用多核处理器,以提高数据库处理能力
- **网络要求**:虽然本文介绍的是离线安装,但在初始阶段,您可能需要通过网络下载必要的安装包和依赖项。
- **用户权限**:需要具有root或sudo权限,以便执行安装和配置操作。
### 1.2 所需软件与系统配置详解
为了顺利完成MySQL 8.4.3 LTS的离线安装,您需要准备以下软件和进行相应的系统配置:
- **MySQL安装包**:从MySQL官方网站下载适用于Linux的MySQL 8.4.3 LTS版本。下载地址为:[MySQL官方下载页面](https://dev.mysql.com/downloads/mysql/)
- **依赖项**:在Ubuntu 24.04上,您需要安装`libaio`库,以解决某些特定的问题。可以通过以下命令安装:
```bash
sudo apt-get update
sudo apt-get install libaio1
```
- **系统配置**:
- **内核参数**:为了优化MySQL的性能,建议调整一些内核参数。编辑`/etc/sysctl.conf`文件,添加以下内容:
```bash
fs.file-max = 65535
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
vm.swappiness = 10
vm.vfs_cache_pressure = 50
```
- **文件描述符限制**:编辑`/etc/security/limits.conf`文件,增加以下内容:
```bash
mysql soft nofile 65535
mysql hard nofile 65535
```
### 1.3 资源需求与版本选择指南
选择合适的MySQL版本对于确保系统的稳定性和性能至关重要。MySQL 8.4.3 LTS是一个长期支持版本,适合用于生产环境。以下是选择该版本的一些关键考虑因素:
- **稳定性**:LTS版本经过了长时间的测试和验证,具有较高的稳定性,适合企业级应用。
- **性能优化**:MySQL 8.4.3 LTS引入了许多性能优化特性,如并行查询、改进的索引管理和更好的内存管理。
- **安全性**:该版本包含了许多安全增强功能,如更强的加密算法和更严格的访问控制。
- **兼容性**:确保您的应用程序和现有数据能够与MySQL 8.4.3 LTS兼容。如果有必要,可以进行适当的迁移和测试。
在选择版本时,建议参考MySQL官方文档和社区反馈,以获取最新的信息和最佳实践。此外,根据您的具体需求和资源情况,可以选择不同的存储引擎和配置选项,以进一步优化数据库性能。
## 二、下载与上传安装包
### 2.1 MySQL 8.4.3 LTS官方下载地址
在开始MySQL 8.4.3 LTS的离线安装之前,首先需要从MySQL官方网站下载适用于Linux的安装包。选择正确的版本对于确保安装过程的顺利进行至关重要。以下是MySQL 8.4.3 LTS的官方下载地址:
- **下载地址**:[MySQL官方下载页面](https://dev.mysql.com/downloads/mysql/)
- **版本选择**:在下载页面上,选择“Linux - Generic”选项,然后选择适用于x86_64架构的tar.gz压缩包。确保选择的是8.4.3 LTS版本,这是经过长时间测试和验证的稳定版本,适合用于生产环境。
下载完成后,将安装包保存到一个易于访问的目录,例如`/home/user/downloads`。接下来,我们将详细介绍如何将安装包上传到目标服务器并进行解压。
### 2.2 安装包上传与解压步骤
#### 2.2.1 上传安装包
1. **使用SCP命令上传**:
如果您有另一台计算机,可以通过SCP命令将安装包上传到目标服务器。假设您的安装包名为`mysql-8.4.3-linux-glibc2.12-x86_64.tar.xz`,并且目标服务器的IP地址为`192.168.1.100`,用户名为`user`,可以使用以下命令:
```bash
scp /path/to/mysql-8.4.3-linux-glibc2.12-x86_64.tar.xz user@192.168.1.100:/home/user/
```
2. **使用SFTP客户端上传**:
如果您更喜欢图形界面,可以使用SFTP客户端(如FileZilla)将安装包上传到目标服务器。打开FileZilla,输入目标服务器的IP地址、用户名和密码,连接成功后,将安装包拖放到目标目录。
#### 2.2.2 解压安装包
1. **进入目标目录**:
登录到目标服务器,进入您上传安装包的目录。例如:
```bash
ssh user@192.168.1.100
cd /home/user/
```
2. **解压安装包**:
使用`tar`命令解压安装包。假设安装包名为`mysql-8.4.3-linux-glibc2.12-x86_64.tar.xz`,可以使用以下命令:
```bash
tar -xvf mysql-8.4.3-linux-glibc2.12-x86_64.tar.xz
```
3. **移动解压后的文件**:
将解压后的文件移动到一个合适的位置,例如`/usr/local/mysql`。可以使用以下命令:
```bash
sudo mv mysql-8.4.3-linux-glibc2.12-x86_64 /usr/local/mysql
```
4. **创建符号链接**:
为了方便使用,可以创建一个符号链接,指向MySQL的安装目录。使用以下命令:
```bash
sudo ln -s /usr/local/mysql /usr/local/mysql-8.4.3
```
通过以上步骤,您已经成功上传并解压了MySQL 8.4.3 LTS的安装包。接下来,我们将继续介绍如何创建专用用户和用户组、设置文件夹权限、安装依赖项以及进行数据库初始化等步骤。
## 三、用户与权限设置
### 3.1 创建专用用户和用户组
在进行MySQL 8.4.3 LTS的离线安装过程中,创建专用用户和用户组是确保系统安全性和稳定性的关键步骤。这一步骤不仅有助于隔离MySQL服务与其他系统服务,还可以防止潜在的安全风险。以下是详细的创建步骤:
1. **创建MySQL用户组**:
首先,我们需要创建一个专门用于运行MySQL服务的用户组。这可以通过以下命令实现:
```bash
sudo groupadd mysql
```
2. **创建MySQL用户**:
接下来,创建一个专门用于运行MySQL服务的用户,并将其添加到刚刚创建的用户组中。使用以下命令:
```bash
sudo useradd -r -g mysql -s /bin/false mysql
```
这里,`-r`选项表示这是一个系统用户,`-g mysql`表示将用户添加到`mysql`组,`-s /bin/false`表示该用户的登录shell被设置为不可用,从而防止直接登录。
3. **验证用户和用户组**:
为了确保用户和用户组已成功创建,可以使用以下命令进行验证:
```bash
id mysql
```
输出应显示类似以下内容:
```
uid=999(mysql) gid=999(mysql) groups=999(mysql)
```
通过以上步骤,您已经成功创建了专用的MySQL用户和用户组。这不仅有助于提高系统的安全性,还可以确保MySQL服务在独立的环境中运行,避免与其他系统服务发生冲突。
### 3.2 设置文件夹权限以保证安全性
在创建了专用用户和用户组之后,下一步是设置MySQL安装目录的文件夹权限,以确保只有授权用户才能访问和修改相关文件。这一步骤对于保护数据库的安全性和完整性至关重要。以下是详细的设置步骤:
1. **更改MySQL安装目录的所有者和组**:
首先,将MySQL安装目录的所有者和组更改为刚刚创建的`mysql`用户和`mysql`组。使用以下命令:
```bash
sudo chown -R mysql:mysql /usr/local/mysql
```
2. **设置文件夹权限**:
接下来,设置MySQL安装目录及其子目录的权限,以确保只有`mysql`用户和`mysql`组可以读取、写入和执行相关文件。使用以下命令:
```bash
sudo chmod -R 750 /usr/local/mysql
```
3. **设置数据目录权限**:
特别地,MySQL的数据目录需要更高的安全性。假设数据目录位于`/usr/local/mysql/data`,可以使用以下命令设置其权限:
```bash
sudo chown -R mysql:mysql /usr/local/mysql/data
sudo chmod -R 700 /usr/local/mysql/data
```
4. **验证权限设置**:
为了确保权限设置正确,可以使用以下命令进行验证:
```bash
ls -ld /usr/local/mysql
ls -ld /usr/local/mysql/data
```
输出应显示类似以下内容:
```
drwxr-x--- 12 mysql mysql 4096 Oct 10 14:30 /usr/local/mysql
drwx------ 2 mysql mysql 4096 Oct 10 14:30 /usr/local/mysql/data
```
通过以上步骤,您已经成功设置了MySQL安装目录及其数据目录的文件夹权限。这不仅有助于保护数据库的安全性,还可以防止未经授权的访问和修改,确保MySQL服务的稳定运行。
## 四、安装与配置
### 4.1 安装libaio依赖解决特定问题
在Ubuntu 24.04系统上进行MySQL 8.4.3 LTS的离线安装时,安装`libaio`依赖是确保数据库正常运行的关键步骤之一。`libaio`库提供了异步I/O操作的支持,这对于提高MySQL的性能和稳定性至关重要。以下是详细的安装步骤:
1. **更新软件包列表**:
在安装任何新的软件包之前,建议先更新软件包列表,以确保获取最新的软件包信息。使用以下命令:
```bash
sudo apt-get update
```
2. **安装libaio**:
接下来,安装`libaio`库。这可以通过以下命令实现:
```bash
sudo apt-get install libaio1
```
3. **验证安装**:
为了确保`libaio`库已成功安装,可以使用以下命令进行验证:
```bash
dpkg -l | grep libaio
```
输出应显示类似以下内容:
```
ii libaio1:amd64 0.3.112-5 amd64 Linux AIO access library
```
通过以上步骤,您已经成功安装了`libaio`依赖,解决了Ubuntu 24.04系统上的特定问题,为MySQL 8.4.3 LTS的顺利安装打下了坚实的基础。
### 4.2 数据库初始化及my.cnf文件配置
在完成依赖项的安装后,接下来的重要步骤是进行数据库的初始化和配置`my.cnf`文件。这一步骤不仅确保了数据库的初始状态,还为后续的性能优化和安全管理奠定了基础。以下是详细的步骤:
1. **初始化数据库**:
首先,切换到MySQL的安装目录,并使用`mysqld`命令初始化数据库。使用以下命令:
```bash
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql
```
初始化过程中,系统会生成一个临时的root用户密码,记录下来以备后续使用。
2. **配置my.cnf文件**:
接下来,编辑`my.cnf`文件以配置MySQL的各项参数。创建或编辑`/etc/my.cnf`文件,添加以下内容:
```ini
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/run/mysqld/mysqld.sock
log-error=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid
# 性能优化
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
max_connections=150
# 安全设置
bind-address=127.0.0.1
skip-name-resolve
```
3. **创建必要的目录和文件**:
确保创建必要的目录和文件,并设置适当的权限。使用以下命令:
```bash
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo touch /var/log/mysql/error.log
sudo chown mysql:mysql /var/log/mysql/error.log
```
通过以上步骤,您已经成功初始化了MySQL数据库,并配置了`my.cnf`文件,为后续的启动和使用做好了准备。
### 4.3 环境变量设置与MySQL服务启动
在完成数据库初始化和配置文件设置后,接下来的步骤是设置环境变量并启动MySQL服务。这一步骤确保了MySQL能够在系统中正常运行,并且用户可以方便地进行管理和操作。以下是详细的步骤:
1. **设置环境变量**:
为了方便使用MySQL命令,需要将MySQL的`bin`目录添加到系统的环境变量中。编辑`/etc/profile`文件,添加以下内容:
```bash
export PATH=$PATH:/usr/local/mysql/bin
```
使环境变量生效,使用以下命令:
```bash
source /etc/profile
```
2. **启动MySQL服务**:
使用以下命令启动MySQL服务:
```bash
sudo bin/mysqld_safe --user=mysql &
```
3. **验证MySQL服务状态**:
为了确保MySQL服务已成功启动,可以使用以下命令进行验证:
```bash
sudo systemctl status mysql
```
输出应显示MySQL服务正在运行。
4. **登录MySQL并进行相关设置**:
使用临时的root用户密码登录MySQL:
```bash
mysql -u root -p
```
登录后,进行相关设置,如修改root用户密码和授权:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
```
通过以上步骤,您已经成功设置了环境变量并启动了MySQL服务,确保了MySQL在Ubuntu 24.04系统上的正常运行。这不仅为您的数据库应用提供了强大的支持,还为您后续的开发和维护工作打下了坚实的基础。
## 五、MySQL服务管理与授权
### 5.1 登录MySQL并进行相关设置
在完成了MySQL 8.4.3 LTS的安装和初始化之后,接下来的步骤是登录MySQL并进行相关的设置。这一步骤不仅确保了数据库的初始状态,还为后续的管理和使用奠定了基础。以下是详细的登录步骤和相关设置:
1. **登录MySQL**:
使用临时的root用户密码登录MySQL。在终端中输入以下命令:
```bash
mysql -u root -p
```
输入临时密码后,您将进入MySQL的命令行界面。
2. **查看当前用户**:
为了确认您已成功登录,可以使用以下命令查看当前用户:
```sql
SELECT USER();
```
输出应显示当前登录的用户为`root@localhost`。
3. **查看数据库列表**:
使用以下命令查看当前系统中的所有数据库:
```sql
SHOW DATABASES;
```
输出将列出所有可用的数据库,包括默认的`information_schema`、`mysql`、`performance_schema`和`sys`等系统数据库。
4. **查看表结构**:
为了更好地了解数据库的结构,可以使用以下命令查看某个数据库中的表结构。例如,查看`mysql`数据库中的表:
```sql
USE mysql;
SHOW TABLES;
```
通过以上步骤,您已经成功登录到MySQL并进行了初步的检查。接下来,我们将进行更为重要的设置,如创建root用户、修改密码和授权操作。
### 5.2 创建root用户、修改密码和授权操作
在MySQL中,root用户拥有最高的权限,因此确保其安全性和权限设置是非常重要的。以下是详细的步骤,帮助您创建root用户、修改密码并进行授权操作:
1. **修改root用户密码**:
为了提高安全性,建议立即修改root用户的默认密码。使用以下命令修改密码:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
```
请将`新密码`替换为您希望设置的强密码。
2. **刷新权限**:
修改密码后,需要刷新权限以使更改生效。使用以下命令:
```sql
FLUSH PRIVILEGES;
```
3. **创建新的root用户**:
如果您希望创建一个新的root用户,可以使用以下命令:
```sql
CREATE USER 'new_root'@'localhost' IDENTIFIED BY '新密码';
```
请将`new_root`和`新密码`替换为您希望使用的用户名和密码。
4. **授予权限**:
为了确保新创建的root用户拥有所有权限,可以使用以下命令:
```sql
GRANT ALL PRIVILEGES ON *.* TO 'new_root'@'localhost' WITH GRANT OPTION;
```
这条命令授予新用户对所有数据库和表的全部权限,并允许其授予权限给其他用户。
5. **再次刷新权限**:
授予权限后,再次刷新权限以确保更改生效:
```sql
FLUSH PRIVILEGES;
```
6. **退出MySQL**:
完成所有设置后,使用以下命令退出MySQL:
```sql
EXIT;
```
通过以上步骤,您已经成功创建了root用户、修改了密码并进行了授权操作。这不仅提高了数据库的安全性,还为后续的管理和使用提供了便利。确保您的密码足够复杂,并定期更换,以进一步增强系统的安全性。
## 六、快速部署脚本
### 6.1 提供快速部署脚本
在完成上述所有步骤后,为了进一步简化MySQL 8.4.3 LTS在Ubuntu 24.04系统上的离线安装过程,我们提供了一个快速部署脚本。这个脚本集成了所有必要的安装和配置步骤,使得用户可以在几分钟内完成整个安装过程。以下是脚本的详细内容:
```bash
#!/bin/bash
# 更新软件包列表
sudo apt-get update
# 安装libaio依赖
sudo apt-get install -y libaio1
# 创建MySQL用户和用户组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
# 下载并解压MySQL安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.4.3-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.4.3-linux-glibc2.12-x86_64.tar.xz
sudo mv mysql-8.4.3-linux-glibc2.12-x86_64 /usr/local/mysql
# 设置文件夹权限
sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod -R 750 /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql/data
sudo chmod -R 700 /usr/local/mysql/data
# 初始化数据库
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql
# 配置my.cnf文件
sudo tee /etc/my.cnf > /dev/null <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/run/mysqld/mysqld.sock
log-error=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid
# 性能优化
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
max_connections=150
# 安全设置
bind-address=127.0.0.1
skip-name-resolve
EOF
# 创建必要的目录和文件
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo touch /var/log/mysql/error.log
sudo chown mysql:mysql /var/log/mysql/error.log
# 设置环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile
source /etc/profile
# 启动MySQL服务
sudo bin/mysqld_safe --user=mysql &
# 验证MySQL服务状态
sudo systemctl status mysql
# 登录MySQL并进行相关设置
echo "请使用临时的root用户密码登录MySQL并进行相关设置"
```
### 6.2 脚本使用说明与注意事项
#### 使用说明
1. **下载脚本**:
将上述脚本保存为一个文件,例如`mysql_install.sh`。
2. **赋予执行权限**:
使用以下命令赋予脚本执行权限:
```bash
chmod +x mysql_install.sh
```
3. **运行脚本**:
在终端中运行脚本:
```bash
./mysql_install.sh
```
#### 注意事项
1. **网络连接**:
脚本中包含了从MySQL官方网站下载安装包的步骤,因此在运行脚本前,请确保您的系统能够访问互联网。如果您已经在本地准备好了安装包,可以修改脚本中的下载部分,直接使用本地路径。
2. **系统权限**:
脚本中涉及多个需要root权限的操作,因此请确保您以root用户或使用sudo权限运行脚本。
3. **临时密码**:
在初始化数据库时,系统会生成一个临时的root用户密码。请务必记录下这个密码,以便后续登录MySQL进行相关设置。
4. **环境变量**:
脚本中设置了环境变量,使MySQL的命令可以在终端中直接使用。如果您已经设置了其他环境变量,请注意不要覆盖原有的设置。
5. **日志文件**:
脚本中配置了MySQL的日志文件路径。请确保日志文件所在的目录存在,并且MySQL用户有写入权限。
通过使用这个快速部署脚本,您可以大大简化MySQL 8.4.3 LTS在Ubuntu 24.04系统上的离线安装过程,节省时间和精力,确保安装过程的顺利进行。希望这个脚本能为您的数据库部署带来便利。
## 七、总结
本文详细介绍了如何在Ubuntu 24.04操作系统上进行MySQL 8.4.3 LTS版本的离线安装。从环境配置和前期准备,到下载与上传安装包,再到用户与权限设置、安装与配置,以及MySQL服务管理与授权,每个步骤都进行了详细的说明。通过本文的指导,用户可以顺利地完成MySQL 8.4.3 LTS的离线安装,并确保系统的稳定性和安全性。此外,本文还提供了一个快速部署脚本,帮助用户简化安装流程,快速完成MySQL的离线安装。希望本文能为您的数据库部署工作提供有价值的参考和帮助。