import pymysql import sys # 数据库配置 config = { 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'rootx77', 'charset': 'utf8mb4' } print("=" * 50) print("测试数据库连接") print("=" * 50) try: # 连接数据库 conn = pymysql.connect(**config) cursor = conn.cursor() print("✅ 数据库连接成功") # 查看所有数据库 cursor.execute("SHOW DATABASES") databases = cursor.fetchall() print("\n📋 所有数据库:") for db in databases: print(f" - {db[0]}") # 检查 ai 数据库 cursor.execute("USE ai") print("\n✅ 切换到 ai 数据库成功") # 查看所有表 cursor.execute("SHOW TABLES") tables = cursor.fetchall() print(f"\n📋 ai 数据库中的表 (共 {len(tables)} 张):") for table in tables: print(f" - {table[0]}") # 检查关键表是否存在 key_tables = ['nf_user', 'nf_lovers', 'nf_chat_message', 'nf_chat_session'] print("\n🔍 检查关键表:") for table_name in key_tables: cursor.execute(f"SHOW TABLES LIKE '{table_name}'") result = cursor.fetchone() if result: print(f" ✅ {table_name} 存在") # 查看表结构 cursor.execute(f"DESCRIBE {table_name}") columns = cursor.fetchall() print(f" 字段数: {len(columns)}") else: print(f" ❌ {table_name} 不存在") cursor.close() conn.close() print("\n" + "=" * 50) print("✅ 测试完成!数据库配置正确") print("=" * 50) except pymysql.err.OperationalError as e: print(f"\n❌ 数据库连接失败: {e}") sys.exit(1) except Exception as e: print(f"\n❌ 发生错误: {e}") sys.exit(1)