Amazon Linux 2023环境下AWS CodeBuild中MySQL CLI安装及执行问题求助
解决AWS CodeBuild(Amazon Linux 2023)中安装MySQL CLI并插入数据的问题
错误原因分析
你遇到的Can not load RPM file错误,核心原因是下载的RPM文件名和安装命令指定的文件名不匹配:你实际下载的是mysql80-community-release-el9-3.noarch.rpm,但安装时写的是mysql80-community-release-el9-1.noarch.rpm,系统找不到对应文件自然报错。
另外,Amazon Linux 2023基于EL9,安装MySQL客户端需要先配置正确的社区仓库,再安装客户端包,以下是完整可行的步骤:
修正后的buildspec.yaml配置
在install阶段添加MySQL CLI的安装命令,完整示例如下:
phases: install: commands: # 下载匹配EL9的MySQL社区仓库配置包 - wget https://repo.mysql.com/mysql80-community-release-el9-3.noarch.rpm # 直接安装本地下载的仓库配置包 - sudo rpm -ivh mysql80-community-release-el9-3.noarch.rpm # 仅安装MySQL客户端(无需服务器,节省资源) - sudo yum install -y mysql-community-client build: commands: - echo "Saving value to MySQL RDS" # 执行插入命令(注意-p和密码之间无空格,避免交互式输入) - mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD -D $DB_NAME -e "INSERT INTO versionReact (version) VALUES ('$REACT_APP_VERSION');"
关键注意事项
- 密码参数格式:
mysql命令的-p和密码之间不能有空格,否则会触发交互式密码输入,导致构建进程卡住。 - 最小化安装:仅安装
mysql-community-client包即可满足CLI操作需求,无需安装MySQL服务器,减少安装时间和资源占用。 - 权限与变量验证:确保CodeBuild项目已配置
DB_HOST、DB_USER、DB_PASSWORD、DB_NAME、REACT_APP_VERSION环境变量,同时RDS安全组需开放CodeBuild实例的IP访问3306端口。
内容的提问来源于stack exchange,提问作者Parker
相关产品推荐
相关产品推荐

