71 lines
2.2 KiB
Python
Executable File
71 lines
2.2 KiB
Python
Executable File
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
测试MongoDB连接
|
||
"""
|
||
|
||
import os
|
||
from pymongo import MongoClient
|
||
from dotenv import load_dotenv
|
||
|
||
# 加载环境变量
|
||
load_dotenv()
|
||
|
||
def test_mongodb_connection():
|
||
"""测试MongoDB连接"""
|
||
try:
|
||
# 获取连接字符串
|
||
mongo_uri = os.environ.get('MONGO_URI')
|
||
print(f"连接字符串: {mongo_uri}")
|
||
|
||
# 创建连接
|
||
client = MongoClient(mongo_uri)
|
||
|
||
# 测试连接
|
||
client.admin.command('ping')
|
||
print("✅ MongoDB连接成功!")
|
||
|
||
# 获取数据库
|
||
db = client.InfoGenie
|
||
print(f"数据库: {db.name}")
|
||
|
||
# 测试集合访问
|
||
userdata_collection = db.userdata
|
||
print(f"用户集合: {userdata_collection.name}")
|
||
|
||
# 测试查询(计算文档数量)
|
||
count = userdata_collection.count_documents({})
|
||
print(f"用户数据集合中有 {count} 个文档")
|
||
|
||
# 关闭连接
|
||
client.close()
|
||
|
||
except Exception as e:
|
||
print(f"❌ MongoDB连接失败: {str(e)}")
|
||
|
||
# 尝试其他认证数据库
|
||
print("\n尝试使用不同的认证配置...")
|
||
try:
|
||
# 尝试不指定认证数据库
|
||
uri_without_auth = "mongodb://shumengya:tyh%4019900420@192.168.1.233:27017/InfoGenie"
|
||
client2 = MongoClient(uri_without_auth)
|
||
client2.admin.command('ping')
|
||
print("✅ 不使用authSource连接成功!")
|
||
client2.close()
|
||
except Exception as e2:
|
||
print(f"❌ 无authSource也失败: {str(e2)}")
|
||
|
||
# 尝试使用InfoGenie作为认证数据库
|
||
try:
|
||
uri_with_infogenie_auth = "mongodb://shumengya:tyh%4019900420@192.168.1.233:27017/InfoGenie?authSource=InfoGenie"
|
||
client3 = MongoClient(uri_with_infogenie_auth)
|
||
client3.admin.command('ping')
|
||
print("✅ 使用InfoGenie作为authSource连接成功!")
|
||
client3.close()
|
||
except Exception as e3:
|
||
print(f"❌ InfoGenie authSource也失败: {str(e3)}")
|
||
|
||
if __name__ == "__main__":
|
||
print("🔧 测试MongoDB连接...")
|
||
test_mongodb_connection()
|