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