checker.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 初始化检测模块
  5. """
  6. import sys
  7. from typing import Dict, Any
  8. from config.loader import get_config
  9. from db.pool import get_mysql_conn, get_doris_conn
  10. def init_check() -> bool:
  11. """
  12. 初始化检测
  13. 检测 MySQL 和 Doris 数据库连接是否正常
  14. Returns:
  15. 所有连接是否正常
  16. """
  17. print("=" * 50)
  18. print("初始化检测")
  19. print("=" * 50)
  20. mysql_cfg: Dict[str, Any] = get_config("database.mysql", {})
  21. doris_cfg: Dict[str, Any] = get_config("database.doris", {})
  22. print(f"\nMySQL 配置:")
  23. print(f" Host: {mysql_cfg.get('host', 'N/A')}")
  24. print(f" Port: {mysql_cfg.get('port', 'N/A')}")
  25. print(f" Database: {mysql_cfg.get('database', 'N/A')}")
  26. print(f"\nDoris 配置:")
  27. print(f" Host: {doris_cfg.get('host', 'N/A')}")
  28. print(f" Port: {doris_cfg.get('port', 'N/A')}")
  29. print(f" Database: {doris_cfg.get('database', 'N/A')}")
  30. print("\n" + "-" * 50)
  31. # 检测 MySQL
  32. mysql_ok: bool = _check_mysql()
  33. # 检测 Doris
  34. doris_ok: bool = _check_doris()
  35. print("=" * 50)
  36. if mysql_ok and doris_ok:
  37. print("初始化检测完成,所有连接正常")
  38. else:
  39. print("初始化检测完成,部分连接失败")
  40. print("=" * 50)
  41. print()
  42. return mysql_ok and doris_ok
  43. def _check_mysql() -> bool:
  44. """检测 MySQL 连接"""
  45. try:
  46. conn = get_mysql_conn()
  47. cursor = conn.cursor()
  48. cursor.execute("SELECT 1")
  49. result = cursor.fetchone()
  50. cursor.close()
  51. conn.close()
  52. if result and result.get("1") == 1:
  53. print("[OK] MySQL 连接成功")
  54. return True
  55. else:
  56. print("[警告] MySQL 连接异常")
  57. return False
  58. except Exception as e:
  59. print(f"[错误] MySQL 连接失败: {e}")
  60. return False
  61. def _check_doris() -> bool:
  62. """检测 Doris 连接"""
  63. try:
  64. conn = get_doris_conn()
  65. cursor = conn.cursor()
  66. cursor.execute("SELECT 1")
  67. result = cursor.fetchone()
  68. cursor.close()
  69. conn.close()
  70. if result and result.get("1") == 1:
  71. print("[OK] Doris 连接成功")
  72. return True
  73. else:
  74. print("[警告] Doris 连接异常")
  75. return False
  76. except Exception as e:
  77. print(f"[错误] Doris 连接失败: {e}")
  78. return False
  79. if __name__ == "__main__":
  80. success = init_check()
  81. sys.exit(0 if success else 1)