跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

Linux 系统 MySQL 8.0 安装与配置指南

综述由AI生成在 CentOS 和 Ubuntu 系统上安装 MySQL 8.0 的两种方法(官方仓库与二进制包),包括环境准备、旧版清理、服务配置、密码重置及远程访问设置,并提供了常见问题解决方案。

AiEngineer发布于 2026/3/30更新于 2026/5/2431 浏览
Linux 系统 MySQL 8.0 安装与配置指南

一、安装前准备

1. 系统要求

  • CentOS:CentOS 7 及以上(64 位),内存 ≥ 2GB,磁盘空间 ≥ 10GB
  • Ubuntu:Ubuntu 20.04 及以上(64 位),内存 ≥ 2GB,磁盘空间 ≥ 10GB
  • 通用要求:关闭防火墙或开放 MySQL 默认端口(3306),禁止安装旧版 MySQL(避免冲突)

2. 清理旧版 MySQL(可选)

若系统已安装旧版 MySQL(如 5.7),需先卸载清理,避免依赖冲突:

(1)CentOS 系统

# 停止 MySQL 服务
systemctl stop mysqld
# 卸载 MySQL 组件
yum remove -y mysql-community-server mysql-community-client mysql-community-common mysql-community-libs
# 清理残留文件
rm -rf /var/lib/mysql/
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log

(2)Ubuntu 系统

# 停止 MySQL 服务
systemctl stop mysql
# 卸载 MySQL 组件(保留配置文件)
apt remove -y mysql-server mysql-client mysql-common
# 彻底卸载(删除配置文件)
apt purge -y mysql-server mysql-client mysql-common
# 清理残留文件
rm -rf /var/lib/mysql/
rm -rf /etc/mysql/
rm -rf /var/log/mysql/

二、安装方式一:官方 YUM/APT 仓库安装(推荐)

通过 MySQL 官方仓库安装,可自动解决依赖,且方便后续版本更新,适合大多数场景。

2.1 CentOS 系统(YUM 仓库)

(1)步骤 1:下载并安装官方 YUM 源

# 进入临时目录
cd /tmp
# 下载 MySQL 8.0 YUM 源(CentOS 7 对应 el7,CentOS 8 对应 el8)
# CentOS 7:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# CentOS 8:
# wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
# 安装 YUM 源
rpm -ivh mysql80-community-release-el7-3.noarch.rpm

(2)步骤 2:验证 YUM 源是否生效

yum repolist enabled |grep mysql

若输出包含 mysql80-community 相关条目,说明源生效。

(3)步骤 3:安装 MySQL 8.0

yum install -y mysql-community-server

等待安装完成,YUM 会自动安装所有依赖组件。

2.2 Ubuntu 系统(APT 仓库)

(1)步骤 1:下载并安装官方 APT 源

# 安装依赖工具
aptinstall -y wget gnupg
# 下载 MySQL 8.0 APT 源配置文件
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
# 安装 APT 源(安装过程中会弹出配置界面,默认选择 MySQL 8.0 即可,点击 OK 确认)
dpkg -i mysql-apt-config_0.8.22-1_all.deb
# 更新 APT 缓存
apt update

(2)步骤 2:安装 MySQL 8.0

aptinstall -y mysql-server

安装过程中会弹出设置 MySQL root 用户密码的界面,输入密码并确认(密码需包含大小写字母、数字、特殊符号,确保安全性)。

三、安装方式二:二进制包安装(适合自定义安装路径)

若需自定义安装路径(如 /data/mysql),可选择二进制包安装,步骤如下(以 CentOS 7 为例,Ubuntu 流程类似):

(1)步骤 1:下载二进制包 我们下载通用二进制包(glibc 2.17,适配 CentOS 7),官网下载地址:https://downloads.mysql.com/archives/community/

cd /tmp
# 下载 MySQL 8.0 二进制包(Linux x86_64)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz
# 解压
tar -xvf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz

得到如下文件结构。

(2)步骤 2:解压安装包并移动到自定义路径

# 解压压缩包,解压到自定义路径(如 /usr/local/app/mysql)
tar -xvf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz -C /usr/local/app
# 添加软链接
cd /usr/local/app
ln -s mysql-8.0.36-linux-glibc2.17-x86_64/ /usr/local/app/mysql
# 创建数据存储目录
mkdir -p /data/mysql/data
# 创建日志目录
mkdir -p /data/mysql/log

(3)步骤 3:创建 MySQL 用户和组

# 创建 mysql 组
groupadd mysql
# 创建 mysql 用户(加入 mysql 组,不允许登录系统)
useradd -r -g mysql -s /sbin/nologin mysql
# 授权目录权限
chown -R mysql:mysql /usr/local/app/mysql/
chown -R mysql:mysql /data/mysql/

(4)步骤 4:初始化 MySQL

# 进入 MySQL 安装目录的 bin 目录
cd /usr/local/app/mysql/bin
# 初始化(生成临时 root 密码,记录日志中的密码)
./mysqld --initialize --user=mysql --basedir=/usr/local/app/mysql --datadir=/data/mysql/data --log-error=/data/mysql/log/mysqld.log

初始化完成后,查看临时密码:

cat /data/mysql/log/mysqld.log | grep "temporary password"

输出示例:2024-05-20T08:30:00.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: XXXXXXXX(临时密码)

(5)步骤 5:配置 MySQL 服务

# 复制服务配置文件到 /etc/systemd/system
cp /usr/local/app/mysql/support-files/mysql.server /etc/systemd/system/mysqld.service
# 编辑服务配置文件,指定安装路径和数据路径
vim /etc/systemd/system/mysqld.service

在配置文件中添加以下内容(若已存在则修改):

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/mysql/data --basedir=/usr/local/app/mysql --log-error=/data/mysql/log/mysqld.log
LimitNOFILE=5000

四、MySQL 基础配置

4.1 编辑主配置文件 my.cnf

vim /etc/my.cnf

添加/修改以下核心配置(根据实际需求调整):

[mysqld]
# 端口
port=3306
# 数据目录(YUM/APT 安装默认 /var/lib/mysql,二进制包安装为自定义路径)
datadir=/var/lib/mysql
# 套接字文件
socket=/var/lib/mysql/mysql.sock
# 字符集(推荐 UTF8MB4,支持 emoji)
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 最大连接数
max_connections=1000
# 日志文件
log-error=/var/log/mysqld.log
# 临时表大小
tmp_table_size=64M
max_heap_table_size=64M

[mysql]
# 客户端字符集
default-character-set=utf8mb4

[client]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8mb4

4.2 启动 MySQL 服务并设置开机自启

(1)CentOS/Ubuntu 通用命令

# 重新加载系统服务(修改配置文件后执行)
systemctl daemon-reload
# 启动 MySQL 服务
systemctl start mysqld
# 查看服务状态(active (running) 表示启动成功)
systemctl status mysqld
# 设置开机自启
systemctl enable mysqld

4.3 重置 root 密码(关键)

(1)YUM/APT 安装(Ubuntu 已设置密码,可跳过)

# 查看临时密码(YUM 安装默认生成临时密码)
grep 'temporary password' /var/log/mysqld.log
# 登录 MySQL
mysql -u root -p
# 输入上述临时密码
# 重置密码(密码强度需符合要求:大小写字母 + 数字 + 特殊符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword@2024';
# 刷新权限
FLUSH PRIVILEGES;

(2)二进制包安装

# 登录 MySQL(使用初始化时的临时密码)
/usr/local/app/mysql/bin/mysql -u root -p
# 重置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword@2024';
# 刷新权限
FLUSH PRIVILEGES;

4.4 配置远程连接(可选)

默认情况下,root 用户仅允许本地连接,若需远程连接 MySQL,执行以下命令:

# 登录 MySQL
mysql -u root -p
# 允许 root 用户远程连接(% 表示所有 IP,也可指定具体 IP,如 192.168.1.100)
CREATE USER 'root'@'%' IDENTIFIED BY 'NewPassword@2024';
# 授予 root 用户所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;

同时,需开放 Linux 防火墙 3306 端口:

CentOS 系统

# 开放 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload

Ubuntu 系统

# 开放 3306 端口
ufw allow 3306/tcp
# 重启防火墙
ufw reload

五、安装验证

# 登录 MySQL
/usr/local/app/mysql/bin/mysql -u root -p
# 输入重置后的密码
# 查看 MySQL 版本
select version();
# 输出示例:8.0.36
# 查看数据库列表
show databases;
# 输出包含 information_schema、mysql、performance_schema、sys 等默认数据库,说明安装成功

六、常见问题解决

6.1 启动 MySQL 服务失败

  • 查看日志排查原因:cat /var/log/mysqld.log
  • 常见原因:端口被占用(使用 netstat -tuln | grep 3306 查看端口占用,修改 my.cnf 中的 port 配置)、数据目录权限不足(执行 chown -R mysql:mysql /var/lib/mysql 授权)

6.2 远程连接失败

  • 检查防火墙是否开放 3306 端口(执行 firewall-cmd --list-ports 或 ufw status 查看)
  • 检查 root 用户远程权限是否配置正确(登录 MySQL 执行 select user,host from mysql.user where user='root';,确保 host 为 % 或指定的远程 IP)
  • 检查网络是否通畅(远程机器执行 ping 服务器 IP 和 telnet 服务器 IP 3306 测试连接)

6.3 密码强度不满足要求

MySQL 8.0 默认启用密码强度验证插件(validate_password),若需设置简单密码,可临时关闭验证:

# 登录 MySQL
mysql -u root -p
# 关闭密码强度验证
set global validate_password.policy=0;
set global validate_password.length=6;
# 重置简单密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

注意:生产环境不建议关闭密码强度验证,需保证密码安全性。

七、卸载 MySQL(可选)

若需卸载 MySQL,执行以下命令(CentOS 为例):

# 停止服务
systemctl stop mysqld
# 卸载组件(YUM 安装)
yum remove -y mysql-community-server mysql-community-client mysql-community-common mysql-community-libs
# 二进制包安装卸载
rm -rf /usr/local/app/mysql
rm -rf /data/mysql
# 清理配置文件和日志
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log
# 删除 mysql 用户和组
userdel -r mysql
groupdel mysql

八、总结

本文介绍了 Linux 系统下 MySQL 8.0 的两种安装方式,YUM/APT 仓库安装适合快速部署,二进制包安装适合自定义需求。安装完成后,需重点配置 root 密码和远程连接权限,确保数据库安全可用。若遇到问题,可通过查看日志快速定位原因,按常见问题解决方法处理。

目录

  1. 一、安装前准备
  2. 1. 系统要求
  3. 2. 清理旧版 MySQL(可选)
  4. 停止 MySQL 服务
  5. 卸载 MySQL 组件
  6. 清理残留文件
  7. 停止 MySQL 服务
  8. 卸载 MySQL 组件(保留配置文件)
  9. 彻底卸载(删除配置文件)
  10. 清理残留文件
  11. 二、安装方式一:官方 YUM/APT 仓库安装(推荐)
  12. 2.1 CentOS 系统(YUM 仓库)
  13. 进入临时目录
  14. 下载 MySQL 8.0 YUM 源(CentOS 7 对应 el7,CentOS 8 对应 el8)
  15. CentOS 7:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  16. CentOS 8:
  17. wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
  18. 安装 YUM 源
  19. 2.2 Ubuntu 系统(APT 仓库)
  20. 安装依赖工具
  21. 下载 MySQL 8.0 APT 源配置文件
  22. 安装 APT 源(安装过程中会弹出配置界面,默认选择 MySQL 8.0 即可,点击 OK 确认)
  23. 更新 APT 缓存
  24. 三、安装方式二:二进制包安装(适合自定义安装路径)
  25. 下载 MySQL 8.0 二进制包(Linux x86_64)
  26. 解压
  27. 解压压缩包,解压到自定义路径(如 /usr/local/app/mysql)
  28. 添加软链接
  29. 创建数据存储目录
  30. 创建日志目录
  31. 创建 mysql 组
  32. 创建 mysql 用户(加入 mysql 组,不允许登录系统)
  33. 授权目录权限
  34. 进入 MySQL 安装目录的 bin 目录
  35. 初始化(生成临时 root 密码,记录日志中的密码)
  36. 复制服务配置文件到 /etc/systemd/system
  37. 编辑服务配置文件,指定安装路径和数据路径
  38. 四、MySQL 基础配置
  39. 4.1 编辑主配置文件 my.cnf
  40. 端口
  41. 数据目录(YUM/APT 安装默认 /var/lib/mysql,二进制包安装为自定义路径)
  42. 套接字文件
  43. 字符集(推荐 UTF8MB4,支持 emoji)
  44. 最大连接数
  45. 日志文件
  46. 临时表大小
  47. 客户端字符集
  48. 4.2 启动 MySQL 服务并设置开机自启
  49. 重新加载系统服务(修改配置文件后执行)
  50. 启动 MySQL 服务
  51. 查看服务状态(active (running) 表示启动成功)
  52. 设置开机自启
  53. 4.3 重置 root 密码(关键)
  54. 查看临时密码(YUM 安装默认生成临时密码)
  55. 登录 MySQL
  56. 输入上述临时密码
  57. 重置密码(密码强度需符合要求:大小写字母 + 数字 + 特殊符号)
  58. 刷新权限
  59. 登录 MySQL(使用初始化时的临时密码)
  60. 重置密码
  61. 刷新权限
  62. 4.4 配置远程连接(可选)
  63. 登录 MySQL
  64. 允许 root 用户远程连接(% 表示所有 IP,也可指定具体 IP,如 192.168.1.100)
  65. 授予 root 用户所有权限
  66. 刷新权限
  67. 开放 3306 端口
  68. 重新加载防火墙规则
  69. 开放 3306 端口
  70. 重启防火墙
  71. 五、安装验证
  72. 登录 MySQL
  73. 输入重置后的密码
  74. 查看 MySQL 版本
  75. 输出示例:8.0.36
  76. 查看数据库列表
  77. 输出包含 informationschema、mysql、performanceschema、sys 等默认数据库,说明安装成功
  78. 六、常见问题解决
  79. 6.1 启动 MySQL 服务失败
  80. 6.2 远程连接失败
  81. 6.3 密码强度不满足要求
  82. 登录 MySQL
  83. 关闭密码强度验证
  84. 重置简单密码
  85. 七、卸载 MySQL(可选)
  86. 停止服务
  87. 卸载组件(YUM 安装)
  88. 二进制包安装卸载
  89. 清理配置文件和日志
  90. 删除 mysql 用户和组
  91. 八、总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 零基础与其他行业转行是否适合学习 Python
  • AutoGPT 与 Stable Diffusion 结合:实现文本到图像全自动创作
  • 实测 Z-Image-Turbo:AI 绘画在实际场景中的表现
  • 35 岁程序员职业危机应对策略与成长路径
  • Llama3.1 本地知识库应用部署指南
  • AI 驱动游戏:鸿蒙生态的机会分析
  • LeetCode 热题 100:随机链表的深拷贝
  • JavaScript 表单选项处理:单选与多选的核心用法
  • 双指针算法专题:快乐数与盛水最多的容器
  • 转行 Web 前端:短期自学路径与高薪就业指南
  • Linux 系统安装 MinIO 详细教程
  • 基于 WebRTC+AI 的智能远程控制解决方案
  • YOLO11 基于 DroneVehicle 数据集的无人机视角车辆目标检测
  • Spring Boot 使用 web3j 交互智能合约详解
  • VR + 具身智能 + 人形机器人:通往现实世界的智能接口
  • DCU BW1000 环境下 llama.cpp 推理 Qwen3-Coder-30B 实践与问题排查
  • OpenClaw 自我进化:AI 记忆管理与自动压缩配置
  • 微调 BaiChuan13B 进行命名实体识别任务
  • C++ 模板进阶:非类型参数、特化与分离编译
  • LangChain 核心模块详解与实战指南

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online