Laravel API连接MongoDB Atlas遇TLS错误及MongoDB Shell安装失败求助
问题1:Laravel API连接MongoDB Atlas的TLS握手失败
原因分析
- VPC对等连接配置不完整:AWS VPC与MongoDB Atlas的 peering 状态未激活、CIDR未正确授权,或安全组/网络ACL未放行27017端口双向流量
- Laravel驱动配置问题:MongoDB驱动版本与Atlas不兼容,或连接字符串缺少正确的TLS参数
- EB环境证书/版本问题:Elastic Beanstalk环境的CA证书过期,或TLS版本未达到Atlas要求的1.2+标准
解决步骤
1. 校验VPC对等连接
- 确认AWS VPC与MongoDB Atlas的 peering 状态为Active
- 在Atlas控制台的「Network Access」中,确保已添加AWS VPC的CIDR到允许列表(或通过peering模式授权访问)
- 检查AWS VPC安全组:允许出站到MongoDB Atlas集群的27017端口;同时确认Atlas端的网络规则允许来自VPC CIDR的27017端口入站流量
- 检查VPC网络ACL:双向放行27017端口的TCP流量
2. 修正Laravel连接配置
- 确保使用的MongoDB驱动(如jenssegers/mongodb)版本与Atlas兼容(Atlas 6.0+建议驱动版本≥3.9)
- 在
.env文件中补充TLS参数:MONGO_URI="mongodb+srv://<用户名>:<密码>@ac-qvcir0t.zgs6u4e.mongodb.net/?retryWrites=true&w=majority&tls=true" - 或在
config/database.php中明确配置TLS选项:'mongodb' => [ 'driver' => 'mongodb', 'host' => env('MONGO_HOST'), 'port' => env('MONGO_PORT', 27017), 'database' => env('MONGO_DB'), 'username' => env('MONGO_USER'), 'password' => env('MONGO_PASSWORD'), 'options' => [ 'tls' => true, 'replicaSet' => 'atlas-qvcir0t-shard-0', // 替换为你的集群副本集名称,从Atlas连接字符串获取 ], ],
3. 更新EB环境CA证书
如果使用Amazon Linux 2的EB环境,可通过.ebextensions添加配置文件(如01_update_certs.config)更新证书:
commands: 01_update_ca_certs: command: yum update -y ca-certificates
问题2:EC2(Amazon Linux 2023)安装MongoDB Shell失败
原因分析
- 架构不匹配:你的EC2是x86_64架构,但repo配置的是aarch64(ARM)源,导致包无法兼容
- 依赖缺失:Amazon Linux 2023使用OpenSSL 3.0,而MongoDB 4.4/5.0版本的Shell依赖已淘汰的OpenSSL 1.0库(
libcrypto.so.10、libssl.so.10) - 源配置错误:使用了Amazon Linux 2的yum源,而非适配Amazon Linux 2023的源
解决步骤
方法1:通过yum安装兼容版本的Shell
- 删除旧的repo文件:
sudo rm /etc/yum.repos.d/mongodb-org-6.0.repo - 创建适配Amazon Linux 2023的x86_64架构repo:
sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc EOF - 仅安装MongoDB Shell(避免安装完整数据库带来的依赖问题):
sudo yum install -y mongodb-org-shell
方法2:直接下载二进制文件安装(更简单)
- 下载x86_64架构的MongoDB Shell二进制包:
wget https://downloads.mongodb.com/compass/mongosh-1.10.6-linux-x64.tgz - 解压并移动到系统可执行路径:
tar -xvf mongosh-1.10.6-linux-x64.tgz sudo cp mongosh-1.10.6-linux-x64/bin/mongosh /usr/local/bin/ - 验证安装:
mongosh --version
内容的提问来源于stack exchange,提问作者Zakariyae Chmaili
相关产品推荐
相关产品推荐

