🐙 攻克 MySQL RDS + Go 服务部署 完整命令·排错纪实
📌 核心成果:成功在 EC2 上配置 MySQL 官方源,连接 RDS 数据库,下载并运行
server_ai 服务,修正配置文件后服务正常启动并输出日志。
📦 一、MySQL 服务器安装(EC2 本地)
添加 MySQL 官方 DNF 源 & 导入 GPG 密钥
sudo su root
dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
📌 Amazon Linux 2023 默认源不含
mysql-community-server,必须手动添加官方源。 安装 MySQL 服务器及客户端
dnf install -y mysql-community-server
启动 MySQL 并设置开机自启
systemctl start mysqld
systemctl enable mysqld
💡 MySQL 首次启动会自动初始化数据目录,无需手动
mysqld --initialize。🗄️ 二、RDS for MySQL 连接与数据库准备
测试 RDS 连通性并创建数据库及表
# 使用正确的 RDS 端点(注意域名不要写错)
mysql -h database-1.chqkuhdw8gjm.rds.cn-northwest-1.amazonaws.com.cn -P 3306 -u admin -p
# 输入密码后,执行 SQL:
CREATE DATABASE ai_db;
USE ai_db;
CREATE TABLE kv (
mykey VARCHAR(255),
myvalue TEXT
);
# 验证表结构
SHOW TABLES;
⚠️ 错误经验:之前使用了错误端点
database-1.684347980535.cn-northwest-1.rds.amazonaws.com.cn 导致 Unknown host,更正为正确端点后连接成功。🚀 三、下载并配置 server_ai 应用
获取二进制文件及配置文件
wget http://onlyellow.cstor.cn/q6/server_ai -O /root/server_ai
wget http://onlyellow.cstor.cn/q6/conf.toml -O /root/conf.toml
chmod +x /root/server_ai
修正配置文件(关键步骤)
初始 conf.toml 指向本地 MySQL (127.0.0.1) 和错误的用户名密码,需要改为 RDS 实际信息:
cat < /root/conf.toml
[DEFAULT]
log_path = "/root/"
[MEMCACHE]
memcache_host = ""
memcache_port = "0"
[DATABASE]
mysql_host = "database-1.chqkuhdw8gjm.rds.cn-northwest-1.amazonaws.com.cn"
mysql_port = "3306"
mysql_user = "admin"
mysql_password = "123456QWERTY"
mysql_db = "ai_db"
EOF
💡 同时禁用了 memcache(将 host 留空,port 设为 0),避免启动时连接 127.0.0.1:11211 报错。
启动服务并验证
cd /root
./server_ai
✅ 成功日志:
[Server] 2026/05/20 02:30:17 Success to Connect DB![Server] 2026/05/20 02:30:17 Launch Server Successfully![Server] 2026/05/20 02:33:47 Hello World!
📌 程序启动后持续输出 "Hello World!" 表示服务正常运行。
🧪 四、遇到的典型问题及解决方案
问题1:MySQL 客户端连接 RDS 时报 Unknown host
原因:RDS 端点域名输入错误(多了一段数字)。
解决:从 AWS RDS 控制台复制正确的终端节点(格式如 database-1.xxxxx.rds.cn-northwest-1.amazonaws.com.cn)。
问题2:server_ai 启动报
dial tcp 127.0.0.1:11211: connection refused原因:程序尝试连接本地 Memcached,但未安装/启动。
解决:修改 conf.toml 中 [MEMCACHE] 段的 host 为空、port 为 0,程序会跳过 memcache 初始化。
问题3:SQS 错误
NonExistentQueue 或 IMDS 404原因:程序依赖 AWS SQS 队列,但环境没有配置 IAM 角色或队列不存在。
影响:虽然报错,但服务依然启动成功并输出 "Hello World!",如果业务不需要 SQS 功能可以忽略。若需使用,应配置 EC2 IAM 角色并创建对应 SQS 队列。
📝 五、一键全流程脚本(可复用)
整合所有有效命令
#!/bin/bash
# MySQL 8.0 安装 + RDS 配置 + server_ai 部署
# 1. 切换 root
sudo su root
# 2. 添加 MySQL 官方源
dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# 3. 安装 MySQL 服务器
dnf install -y mysql-community-server
# 4. 启动并开机自启
systemctl start mysqld
systemctl enable mysqld
# 5. 下载 server_ai 及配置模板
wget http://onlyellow.cstor.cn/q6/server_ai -O /root/server_ai
wget http://onlyellow.cstor.cn/q6/conf.toml -O /root/conf.toml
chmod +x /root/server_ai
# 6. 覆盖配置文件(替换为真实 RDS 信息)
cat > /root/conf.toml << 'EOF'
[DEFAULT]
log_path = "/root/"
[MEMCACHE]
memcache_host = ""
memcache_port = "0"
[DATABASE]
mysql_host = "database-1.chqkuhdw8gjm.rds.cn-northwest-1.amazonaws.com.cn"
mysql_port = "3306"
mysql_user = "admin"
mysql_password = "123456QWERTY"
mysql_db = "ai_db"
EOF
# 7. 启动服务
/root/server_ai
🎉 最终结论:经过上述步骤,
server_ai 成功连接到 RDS MySQL 数据库,忽略 Memcached 和 SQS 依赖后稳定运行,输出业务日志。本题已完全攻克!
🔐
配置文件含数据库 / 缓存连接信息,部署前请按实际环境核对,切勿泄露密码。
conf.toml · 服务配置
conf.tomltoml
[DEFAULT]
log_path = "/root/"
[MEMCACHE]
memcache_host ="127.0.0.1"
memcache_port = "11211"
[DATABASE]
mysql_host = "database-1.chqkuhdw8gjm.rds.cn-northwest-1.amazonaws.com.cn"
mysql_port = "3306"
mysql_user = "admin"
mysql_password = "123456QWERTY"
mysql_db = "ai_db"
ℹ️
文档由浏览器本地渲染(mammoth),文件不会上传到任何第三方;如预览异常请使用下载按钮获取原文件。
🖥️
以下为服务端程序,需在 Amazon Linux 2 EC2 上
chmod +x 后运行,并在安全组放行对应端口。请勿在本地非受信环境执行。