| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- 初始化检测模块
- """
- import sys
- from typing import Dict, Any
- from config.loader import get_config
- from db.pool import get_mysql_conn, get_doris_conn
- def init_check() -> bool:
- """
- 初始化检测
-
- 检测 MySQL 和 Doris 数据库连接是否正常
-
- Returns:
- 所有连接是否正常
- """
- print("=" * 50)
- print("初始化检测")
- print("=" * 50)
-
- mysql_cfg: Dict[str, Any] = get_config("database.mysql", {})
- doris_cfg: Dict[str, Any] = get_config("database.doris", {})
-
- print(f"\nMySQL 配置:")
- print(f" Host: {mysql_cfg.get('host', 'N/A')}")
- print(f" Port: {mysql_cfg.get('port', 'N/A')}")
- print(f" Database: {mysql_cfg.get('database', 'N/A')}")
-
- print(f"\nDoris 配置:")
- print(f" Host: {doris_cfg.get('host', 'N/A')}")
- print(f" Port: {doris_cfg.get('port', 'N/A')}")
- print(f" Database: {doris_cfg.get('database', 'N/A')}")
-
- print("\n" + "-" * 50)
-
- # 检测 MySQL
- mysql_ok: bool = _check_mysql()
-
- # 检测 Doris
- doris_ok: bool = _check_doris()
-
- print("=" * 50)
-
- if mysql_ok and doris_ok:
- print("初始化检测完成,所有连接正常")
- else:
- print("初始化检测完成,部分连接失败")
-
- print("=" * 50)
- print()
-
- return mysql_ok and doris_ok
- def _check_mysql() -> bool:
- """检测 MySQL 连接"""
- try:
- conn = get_mysql_conn()
- cursor = conn.cursor()
- cursor.execute("SELECT 1")
- result = cursor.fetchone()
- cursor.close()
- conn.close()
- if result and result.get("1") == 1:
- print("[OK] MySQL 连接成功")
- return True
- else:
- print("[警告] MySQL 连接异常")
- return False
- except Exception as e:
- print(f"[错误] MySQL 连接失败: {e}")
- return False
- def _check_doris() -> bool:
- """检测 Doris 连接"""
- try:
- conn = get_doris_conn()
- cursor = conn.cursor()
- cursor.execute("SELECT 1")
- result = cursor.fetchone()
- cursor.close()
- conn.close()
- if result and result.get("1") == 1:
- print("[OK] Doris 连接成功")
- return True
- else:
- print("[警告] Doris 连接异常")
- return False
- except Exception as e:
- print(f"[错误] Doris 连接失败: {e}")
- return False
- if __name__ == "__main__":
- success = init_check()
- sys.exit(0 if success else 1)
|