mmeb/test_baidu_vdb_simple.py
2025-09-01 11:24:01 +00:00

166 lines
5.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
百度VDB向量数据库简单连接测试
专注于验证连接可用性和基本操作
"""
import pymochow
from pymochow.configuration import Configuration
from pymochow.auth.bce_credentials import BceCredentials
import traceback
import time
# 数据库连接配置
ACCOUNT = 'root'
API_KEY = 'vdb$yjr9ln3n0td'
ENDPOINT = 'http://180.76.96.191:5287'
def test_basic_connection():
"""测试基本连接功能"""
print("=" * 60)
print("百度VDB向量数据库连接测试")
print("=" * 60)
print(f"测试时间: {time.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"服务器地址: {ENDPOINT}")
print(f"用户名: {ACCOUNT}")
print()
client = None
test_db_name = None
try:
# 1. 测试客户端创建
print("1. 创建客户端连接...")
config = Configuration(
credentials=BceCredentials(ACCOUNT, API_KEY),
endpoint=ENDPOINT
)
client = pymochow.MochowClient(config)
print(" ✓ 客户端创建成功")
# 2. 测试数据库列表查询
print("\n2. 查询数据库列表...")
db_list = client.list_databases()
print(f" ✓ 查询成功,当前数据库数量: {len(db_list)}")
if db_list:
print(" 现有数据库:")
for i, db in enumerate(db_list, 1):
print(f" {i}. {db.database_name}")
else:
print(" 当前没有数据库")
# 3. 测试创建数据库
print("\n3. 创建测试数据库...")
test_db_name = f"test_connection_{int(time.time())}"
db = client.create_database(test_db_name)
print(f" ✓ 成功创建数据库: {test_db_name}")
# 4. 验证数据库创建
print("\n4. 验证数据库创建...")
db_list_after = client.list_databases()
print(f" ✓ 验证成功,数据库数量: {len(db_list_after)}")
# 5. 获取数据库对象
print("\n5. 获取数据库对象...")
test_db = client.database(test_db_name)
print(f" ✓ 成功获取数据库对象: {test_db.database_name}")
# 6. 查询表列表(应该为空)
print("\n6. 查询表列表...")
table_list = test_db.list_table()
print(f" ✓ 查询成功,表数量: {len(table_list)}")
print("\n" + "=" * 60)
print("🎉 所有基本连接测试通过!")
print("✓ 数据库连接正常")
print("✓ 认证信息正确")
print("✓ 网络连接稳定")
print("✓ 基本数据库操作可用")
print("=" * 60)
return True
except Exception as e:
print(f"\n❌ 测试失败: {str(e)}")
print(f"详细错误信息:")
print(traceback.format_exc())
return False
finally:
# 清理测试数据库
if client and test_db_name:
try:
print(f"\n7. 清理测试数据库...")
client.drop_database(test_db_name)
print(f" ✓ 成功删除测试数据库: {test_db_name}")
except Exception as e:
print(f" ⚠ 清理失败: {str(e)}")
# 关闭连接
if client:
try:
client.close()
print(" ✓ 连接已关闭")
except:
pass
def test_advanced_operations():
"""测试高级操作(可选)"""
print("\n" + "=" * 60)
print("高级功能测试(可选)")
print("=" * 60)
client = None
try:
# 创建客户端
config = Configuration(
credentials=BceCredentials(ACCOUNT, API_KEY),
endpoint=ENDPOINT
)
client = pymochow.MochowClient(config)
# 测试多次连接
print("1. 测试连接稳定性...")
for i in range(3):
db_list = client.list_databases()
print(f"{i+1}次查询: {len(db_list)}个数据库")
time.sleep(1)
print(" ✓ 连接稳定")
print("\n✓ 高级功能测试通过")
except Exception as e:
print(f"⚠ 高级功能测试出现问题: {str(e)}")
finally:
if client:
try:
client.close()
except:
pass
if __name__ == "__main__":
# 运行基本连接测试
success = test_basic_connection()
if success:
# 如果基本测试通过,运行高级测试
test_advanced_operations()
print(f"\n🎯 总结:")
print(f"你的百度VDB向量数据库配置完全可用")
print(f"- 服务器地址: {ENDPOINT}")
print(f"- 用户名: {ACCOUNT}")
print(f"- 连接状态: 正常")
print(f"- 基本操作: 可用")
print(f"- 建议: 可以开始使用该数据库进行向量存储和检索")
else:
print(f"\n❌ 数据库连接存在问题,请检查:")
print(f"1. 网络连接是否正常")
print(f"2. 服务器地址是否正确: {ENDPOINT}")
print(f"3. 用户名和密码是否正确")
print(f"4. 防火墙是否阻止了连接")