| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/bin/env python3
- """
- 测试数据库连接
- """
- import os
- import sys
- # 导入配置
- sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src"))
- from app.core.config import config_handler
- print("=" * 60)
- print("测试数据库连接")
- print("=" * 60)
- # 测试环境变量
- database_url = config_handler.get("admin_app", "DATABASE_URL", "")
- print(f"\n1. DATABASE_URL: {database_url}")
- # 解析 URL
- from urllib.parse import urlparse
- parsed = urlparse(database_url)
- print(f"\n2. 解析结果:")
- print(f" 协议: {parsed.scheme}")
- print(f" 主机: {parsed.hostname}")
- print(f" 端口: {parsed.port}")
- print(f" 用户: {parsed.username}")
- print(f" 密码: {'*' * len(parsed.password) if parsed.password else 'None'}")
- print(f" 数据库: {parsed.path[1:] if parsed.path else 'None'}")
- # 测试 pymysql 连接
- print(f"\n3. 测试 pymysql 连接...")
- try:
- import pymysql
- conn = pymysql.connect(
- host=parsed.hostname,
- port=parsed.port,
- user=parsed.username,
- password=parsed.password,
- database=parsed.path[1:] if parsed.path else None,
- charset='utf8mb4'
- )
- print(" ✅ pymysql 连接成功!")
-
- # 测试查询
- cursor = conn.cursor()
- cursor.execute("SELECT VERSION()")
- version = cursor.fetchone()
- print(f" MySQL 版本: {version[0]}")
-
- # 查询用户表
- cursor.execute("SHOW TABLES LIKE 'users'")
- result = cursor.fetchone()
- if result:
- print(f" ✅ users 表存在")
- cursor.execute("SELECT COUNT(*) FROM users")
- count = cursor.fetchone()
- print(f" 用户数量: {count[0]}")
- else:
- print(f" ❌ users 表不存在")
-
- cursor.close()
- conn.close()
-
- except Exception as e:
- print(f" ❌ 连接失败: {e}")
- import traceback
- traceback.print_exc()
- print("\n" + "=" * 60)
|