Ubuntu24.04 LTS云服务器安装最新版MySQL?

在 Ubuntu 24.04 LTS 上安装“最新版”MySQL,通常有两种主要策略:

  1. 官方 APT 源(推荐):安装 MySQL 8.0 或 9.0(取决于官方源的最新状态),这是最稳定、维护最方便的方式。
  2. 官方二进制包(Binary Tarball):从官网下载最新的编译版,适合需要最新特性且不依赖系统包管理的场景。

注意:Ubuntu 24.04 默认的软件源中通常包含的是 MySQL 8.0。如果你需要 MySQL 9.0(目前处于开发/早期发布阶段)或特定版本,建议直接使用官方提供的 .deb 包或二进制包。

以下是两种主流方案的详细步骤:


方案一:使用官方 MySQL APT 仓库(推荐,适合生产环境)

这种方法会自动处理依赖关系,并允许你通过 apt 命令轻松升级。我们将添加 MySQL 官方仓库来获取最新版本(通常是 8.0,若官方源已更新则包含 9.0)。

1. 下载并安装 MySQL APT 配置工具

首先下载官方的 .deb 包来配置软件源。

# 切换到临时目录下载
cd /tmp

# 下载 MySQL APT 配置工具 (版本号可能会随时间变化,请根据官网最新链接调整)
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb

# 安装该工具 (如果提示交互选择版本,请选择 "MySQL Server & Cluster")
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb

关键步骤:在安装过程中会弹出一个交互式界面。

  • 选择 MySQL Server & Cluster (默认)。
  • 在版本选择页面,选择你想要的版本(例如 MySQL 8.0MySQL 9.0,如果有显示的话)。如果没有 9.0 选项,说明当前官方源尚未提供 9.0 的正式包,此时选 8.0 是最稳定的选择。

2. 更新软件包列表

sudo apt update

3. 安装 MySQL Server

sudo apt install mysql-server

4. 初始化与设置 root 密码

安装完成后,MySQL 会自动运行并生成一个临时的 root 密码。你需要查看日志获取它:

# 查看临时密码
sudo grep 'temporary password' /var/log/mysql/error.log

然后登录并进行安全加固:

sudo mysql_secure_installation

按提示操作:

  • 输入刚才查到的临时密码。
  • 修改 root 密码(强烈建议修改)。
  • 移除匿名用户 (Remove anonymous users? [Y/n]) -> 选 Y。
  • 禁止 root 远程登录 (Disallow root login remotely? [Y/n]) -> 选 Y(除非你有特殊需求)。
  • 移除测试数据库 (Remove test database and access to it? [Y/n]) -> 选 Y。
  • 重新加载权限表 (Reload privilege tables now? [Y/n]) -> 选 Y。

5. 验证安装

mysql --version
# 或者进入命令行
mysql -u root -p

方案二:手动安装二进制包(适合获取 MySQL 9.0 或特定版本)

如果你确定需要 MySQL 9.0(Beta/RC 版本)且官方 APT 源尚未提供,或者需要非标准路径安装,可以使用此方法。

1. 下载二进制包

前往 MySQL Downloads 页面,选择 Linux – Generic 版本。
假设下载的文件名为 mysql-9.0.x-linux-glibc2.28-x86_64.tar.xz(文件名以实际为准):

cd /opt
# 使用 wget 下载 (请替换为实际 URL)
wget https://cdn.mysql.com/archives/mysql-9.0/mysql-9.0.x-linux-glibc2.28-x86_64.tar.xz

2. 解压并移动文件

tar -xvf mysql-9.0.x-linux-glibc2.28-x86_64.tar.xz
mv mysql-9.0.x-linux-glibc2.28-x86_64 mysql-9.0

3. 创建用户和目录

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

sudo mkdir -p /data/mysql
sudo chown -R mysql:mysql /data/mysql
sudo chown -R mysql:mysql /opt/mysql-9.0

4. 初始化数据库

sudo /opt/mysql-9.0/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql-9.0 --datadir=/data/mysql

同样,这里会生成一个临时密码,请记录 `/data/mysql/.err日志中的temporary password`。*

5. 创建 systemd 服务文件

为了让 MySQL 能够开机自启,需要创建一个服务文件:

sudo nano /etc/systemd/system/mysql.service

粘贴以下内容(注意修改路径):

[Unit]
Description=MySQL Community Server
After=network.target

[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/data/mysql/mysql.pid
ExecStart=/opt/mysql-9.0/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf
ExecStop=/opt/mysql-9.0/bin/mysqladmin -u root shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存退出后,启动服务:

sudo systemctl daemon-reload
sudo systemctl start mysql
sudo systemctl enable mysql
sudo systemctl status mysql

6. 配置环境变量(可选)

为了方便在任意位置使用 mysql 命令,可以将 bin 目录加入 PATH:

echo 'export PATH=$PATH:/opt/mysql-9.0/bin' | sudo tee -a /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

常见问题排查

  1. 端口被占用
    如果安装时提示端口 3306 被占用,检查是否有旧版本残留:

    sudo lsof -i :3306
    sudo kill -9 <PID>
  2. 防火墙设置
    云服务器(如阿里云、腾讯云、AWS)需要在控制台的安全组中开放 TCP 3306 端口,否则无法远程连接。

    # Ubuntu 本地防火墙
    sudo ufw allow 3306/tcp
  3. 如何确认版本?
    登录后执行:

    SELECT VERSION();

总结建议

  • 如果是生产环境,强烈建议使用 方案一(APT 源)。虽然可能暂时只能装到 8.0,但其稳定性、自动更新机制和安全性远高于手动编译的二进制包。
  • 如果你必须使用 MySQL 9.0 的新特性,且能接受手动管理升级和备份,请使用 方案二

你可以先尝试方案一,如果 apt list -a mysql-server 能看到 9.0 的版本号,那就直接安装即可;如果没有,再考虑方案二。

未经允许不得转载:CLOUD技术博 » Ubuntu24.04 LTS云服务器安装最新版MySQL?