游乐游手机版
首页/数据库/文章详情

AWS EC2上安装与配置MySQL的完整教程

时间:2026-08-15 12:27
在 AWS EC2 上安装 MySQL 时,直接使用最新官方二进制包通常是最稳妥的方案。因为通过 yum 或 apt 安装时,系统往往会默认部署 MariaDB 或较旧版本的 MySQL,不仅无法精确指定如 8 0 34 这类目标版本,还容易在认证插件(caching_sha2_password)、

在 AWS EC2 上安装 MySQL 时,直接使用最新官方二进制包通常是最稳妥的方案。因为通过 yum 或 apt 安装时,系统往往会默认部署 MariaDB 或较旧版本的 MySQL,不仅无法精确指定如 8.0.34 这类目标版本,还容易在认证插件(caching_sha2_password)、密码策略、配置文件路径以及数据目录结构上出现差异,最终引发客户端连接失败、权限混乱,以及后续升级迁移困难等问题。

如何在AWS EC2上安装和配置MySQL?

更可靠的做法,是直接安装最新版 MySQL 官方二进制包,尽量不要走系统包管理器(yum install mysql-serverapt-get install mysql-server)这条路径——因为它默认拉取下来的,很多时候其实是 MariaDB,或者是偏旧的 MySQL 版本,而且像 8.0.34 这样的精确版本通常无法直接指定。这样会给后续的权限设置、密码策略调整以及插件兼容性埋下不少隐患。

为什么不建议用 yum install mysql-server

在 Amazon Linux 2024、CentOS Stream、RHEL 等系统中,执行 yum install mysql-server 实际安装的往往是 mariadb-server;而在 Ubuntu/Debian 环境下,虽然可能安装的是 mysql-client + mysql-server,但版本通常停留在 5.7 或低于 8.0.33。核心问题主要有以下几点:

  • mysql_native_password 插件默认未启用,容易导致客户端连接时报错:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
  • 初始化完成后,root 临时密码不会直接输出到终端,而是写入 error.log,查找起来非常不便
  • 配置文件路径、服务名称以及数据目录结构都可能与最新官方二进制包不一致,后续做 MySQL 升级或迁移时很难统一

必须使用最新二进制包:下载、解压、初始化三步完成

以 Amazon Linux 2024 为例,推荐的完整安装流程如下(统一使用 /data/mysql8/3308 作为路径):

  • 执行 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34-linux-glibc2.17-x86_64.tar.gz 下载官方安装包,建议不要使用镜像站,以免出现校验失败或版本不一致的问题
  • 解压之后立即执行 chown -R mysql:mysql /data/mysql8/3308,否则在运行 mysqld --initialize 时很可能因为权限不足而失败
  • 初始化命令必须带上 --user=mysql 并明确指定 --datadir
    ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql8/3308/data --basedir=/data/mysql8/3308/mysql
  • 初始化成功后,MySQL 临时密码会出现在 /data/mysql8/3308/data/error.log 的最后部分,搜索 A temporary password 即可找到

my.cnf 关键配置项一定不能遗漏

在 AWS EC2 配置 MySQL 时,下面几个高频易错项尤其要重点关注,缺少任何一项都可能影响使用:

  • default_authentication_plugin=mysql_native_password —— 如果不添加这行,很多新建用户将无法正常连接;因为 caching_sha2_password 在不少 PHP、Python 等客户端环境里仍然需要额外适配
  • character-set-server=utf8mb4 + collation-server=utf8mb4_0900_ai_ci —— utf8 只是 MySQL 的一个“陷阱别名”,本质只支持 3 字节字符,存储 emoji 等内容时极易报错
  • bind-address=0.0.0.0 或指定具体内网 IP(例如 172.31.16.10),不能留空,也不要写成 127.0.0.1,否则 EC2 上的其他服务(如 SpringBoot 应用)将无法远程连接 MySQL
  • max_allowed_packet=1G 需要显式调大,否则使用 mysqldump 导出大表时会直接中断,并提示错误:Packets larger than max_allowed_packet bytes are not allowed

MySQL 启动失败的常见原因与验证方法

执行 ./bin/mysqld_safe --defaults-file=/data/mysql8/3308/my_3308.cnf & 后,建议立即检查以下三处:

  • 查看进程:ps aux | grep mysqld —— 如果没有进程,说明 MySQL 启动被拒绝,通常是 datadir 权限错误,或者 pid-file 路径不可写导致
  • 查看错误日志:tail -50 /data/mysql8/3308/mysqldb-general.err —— 如果出现 Can't start server: Bind on TCP/IP port,一般表示端口已被占用;如果出现 Table 'mysql.plugin' doesn't exist,则说明初始化尚未完成就提前启动了服务
  • 测试本地连接:./bin/mysql -u root -p -S /data/mysql8/3308/mysql.sock —— 成功登录后,应立即执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_pass'; FLUSH PRIVILEGES;

最后还要先打通最基础的一层网络与授权配置:在 EC2 安全组中必须放行 3308(或你实际设置的 MySQL 端口);与此同时,数据库用户也必须显式授予远程访问权限:CREATE USER 'app'@'%' IDENTIFIED WITH mysql_native_password BY 'pass'; GRANT ALL ON *.* TO 'app'@'%';。如果只是开放了安全组端口,却没有完成 MySQL 用户授权,看起来像是“端口已经通了”,实际上连接测试仍然会持续超时,这个问题在 AWS EC2 部署 MySQL 时尤其容易被忽视。

来源:https://www.php.cn/faq/2988459.html
上一篇MySQL字符串字段索引长度如何选择更合理 下一篇Linux mke2fs命令使用方法与实战示例
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis是什么:核心特性、架构与应用场景解析
数据库 · 2026-09-01

Redis是什么:核心特性、架构与应用场景解析

Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。

Windows 安装 MongoDB 完整图文教程
数据库 · 2026-09-01

Windows 安装 MongoDB 完整图文教程

本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
数据库 · 2026-09-01

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动

本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。

MacOS安装MongoDB完整教程
数据库 · 2026-09-01

MacOS安装MongoDB完整教程

本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。

Ubuntu系统安装与配置Redis完整指南
数据库 · 2026-09-01

Ubuntu系统安装与配置Redis完整指南

本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。