文章摘要
本文详细介绍了在 Linux 系统(Debian/Ubuntu 和 RHEL/CentOS)上安装 MySQL 8.0 的完整流程,涵盖以下核心内容:
- 系统适配安装步骤
- Debian/Ubuntu:通过添加官方APT仓库、安装服务、安全配置向导完成部署。
- RHEL/CentOS:使用YUM仓库安装,需获取临时密码并重置安全策略。
- 关键操作命令
- 系统更新、仓库配置、服务启停(
systemctl
)、安全初始化(mysql_secure_installation
)。 - 验证安装:
mysql --version
及登录测试。
- 系统更新、仓库配置、服务启停(
- 可选远程访问配置
- 创建远程用户并授权,修改
bind-address
为0.0.0.0
,开放防火墙端口(3306)。
- 创建远程用户并授权,修改
- 常见问题解决
- 忘记密码:通过跳过权限表重置。
- 密码策略调整:降低复杂度要求。
- 服务故障排查:查看错误日志定位问题。
一、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
三、配置远程访问(可选)
- 登录MySQL:
mysql -u root -p
- 创建用户并授权(示例):
sql
CREATE USER 'username'@'%' IDENTIFIED BY 'StrongPassword!'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 修改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
- 开放防火墙端口(如启用):
sudo ufw allow 3306/tcp # Debian/Ubuntu sudo firewall-cmd --permanent --add-port=3306/tcp # CentOS/RHEL sudo firewall-cmd --reload
四、常见问题
- 忘记root密码:
- 停止MySQL服务,启动时跳过权限检查:
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
- 登录后重置密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
- 停止MySQL服务,启动时跳过权限检查:
- 密码策略调整:
SHOW VARIABLES LIKE 'validate_password%';
SET GLOBAL validate_password.policy = LOW;
# 降低密码强度要求 - 服务启动失败:
- 检查错误日志:
sudo tail -f /var/log/mysql/error.log
# Debian/Ubuntusudo tail -f /var/log/mysqld.log
# CentOS/RHEL
- 检查错误日志:
按照以上步骤操作后,MySQL 8.0 应已成功安装并运行。