Debian/Ubuntu/RHEL/Fedora 如何安装MySQL 8.0

文章摘要

本文详细介绍了在 Linux 系统(Debian/Ubuntu 和 RHEL/CentOS)上安装 MySQL 8.0 的完整流程,涵盖以下核心内容:

  1. 系统适配安装步骤
    • Debian/Ubuntu:通过添加官方APT仓库、安装服务、安全配置向导完成部署。
    • RHEL/CentOS:使用YUM仓库安装,需获取临时密码并重置安全策略。
  2. 关键操作命令
    • 系统更新、仓库配置、服务启停(systemctl)、安全初始化(mysql_secure_installation)。
    • 验证安装:mysql --version 及登录测试。
  3. 可选远程访问配置
    • 创建远程用户并授权,修改 bind-address 为 0.0.0.0,开放防火墙端口(3306)。
  4. 常见问题解决
    • 忘记密码:通过跳过权限表重置。
    • 密码策略调整:降低复杂度要求。
    • 服务故障排查:查看错误日志定位问题。

一、Debian/Ubuntu 系统安装

1. 更新系统包

sudo apt update && sudo apt upgrade -y

2. 添加MySQL APT仓库

wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.28-1_all.deb
  • 出现提示时选择 MySQL Server & Cluster → mysql-8.0,然后按回车确认。

3. 更新APT仓库

sudo apt update

4. 安装MySQL Server

sudo apt install mysql-server -y

5. 启动MySQL服务

sudo systemctl start mysql
sudo systemctl enable mysql

6. 运行安全配置向导

sudo mysql_secure_installation
  • 按提示操作:设置root密码、删除匿名用户、禁止远程root登录、删除测试数据库等。

7. 验证安装

mysql --version
# 登录MySQL
sudo mysql -u root -p

二、RHEL/CentOS/Fedora 系统安装

1. 更新系统包

sudo yum update -y
# 或使用dnf(Fedora/CentOS 8+)
sudo dnf update -y

2. 添加MySQL YUM仓库

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
# CentOS 8+/Fedora 使用:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-6.noarch.rpm

3. 启用MySQL 8.0仓库

sudo yum-config-manager --enable mysql80-community
# 或手动编辑文件:/etc/yum.repos.d/mysql-community.repo

4. 安装MySQL Server

sudo yum install mysql-community-server -y
# 或使用dnf:
sudo dnf install mysql-community-server -y

5. 启动MySQL服务

sudo systemctl start mysqld
sudo systemctl enable mysqld

6. 获取临时root密码

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

7. 运行安全配置向导

sudo mysql_secure_installation
  • 输入临时密码后,按提示设置新密码并完成安全配置。

8. 验证安装

mysql --version
# 登录MySQL
mysql -u root -p

三、配置远程访问(可选)

  1. 登录MySQL:
mysql -u root -p
  1. 创建用户并授权(示例):

sql

CREATE USER 'username'@'%' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  1. 修改MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf  # Debian/Ubuntu
sudo nano /etc/my.cnf  # CentOS/RHEL

找到 bind-address = 127.0.0.1 改为 bind-address = 0.0.0.0,保存后重启服务:

sudo systemctl restart mysql   # Debian/Ubuntu
sudo systemctl restart mysqld  # CentOS/RHEL
  1. 开放防火墙端口(如启用):
sudo ufw allow 3306/tcp  # Debian/Ubuntu
sudo firewall-cmd --permanent --add-port=3306/tcp  # CentOS/RHEL
sudo firewall-cmd --reload

四、常见问题

  1. 忘记root密码
    • 停止MySQL服务,启动时跳过权限检查:
      sudo systemctl stop mysql
      sudo mysqld_safe --skip-grant-tables &
    • 登录后重置密码:
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
  2. 密码策略调整
    SHOW VARIABLES LIKE 'validate_password%';
    SET GLOBAL validate_password.policy = LOW; # 降低密码强度要求
  3. 服务启动失败
    • 检查错误日志:
      sudo tail -f /var/log/mysql/error.log # Debian/Ubuntu
      sudo tail -f /var/log/mysqld.log # CentOS/RHEL

按照以上步骤操作后,MySQL 8.0 应已成功安装并运行。