166 lines
5.2 KiB
Python
166 lines
5.2 KiB
Python
#!/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. 防火墙是否阻止了连接")
|