| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- 数据库连接测试脚本
- 连接到MySQL数据库并测试连接是否成功
- 支持Windows和Linux (CentOS) 环境
- """
- import pymysql
- import sys
- import os
- # 设置控制台输出编码(Windows需要,Linux默认UTF-8)
- if sys.platform == 'win32':
- try:
- os.system('chcp 65001 >nul 2>&1')
- except:
- pass
- else:
- # Linux环境下设置UTF-8编码
- import locale
- try:
- locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
- except:
- try:
- locale.setlocale(locale.LC_ALL, 'C.UTF-8')
- except:
- pass
- def test_db_connection():
- """测试数据库连接"""
- # 数据库连接配置
- db_config = {
- 'host': '127.0.0.1',
- 'port': 3306,
- 'user': 'prod',
- 'password': 'hmdmxjIvfIjIoflL',
- 'database': 'iot',
- 'charset': 'utf8mb4',
- 'connect_timeout': 10 # 连接超时时间(秒)
- }
-
- connection = None
- try:
- # 尝试连接数据库
- print("正在尝试连接到数据库...")
- print(f"主机: {db_config['host']}")
- print(f"端口: {db_config['port']}")
- print(f"用户名: {db_config['user']}")
- print("-" * 50)
-
- connection = pymysql.connect(**db_config)
-
- # 如果连接成功,执行一个简单查询来验证
- with connection.cursor() as cursor:
- cursor.execute("SELECT VERSION()")
- version = cursor.fetchone()
- print("[成功] 数据库连接成功!")
- print(f"[成功] MySQL版本: {version[0]}")
-
- # 获取当前数据库名称
- cursor.execute("SELECT DATABASE()")
- db_name = cursor.fetchone()
- if db_name[0]:
- print(f"[成功] 当前数据库: {db_name[0]}")
- else:
- print("[成功] 当前未选择数据库")
-
- # 获取连接ID
- cursor.execute("SELECT CONNECTION_ID()")
- conn_id = cursor.fetchone()
- print(f"[成功] 连接ID: {conn_id[0]}")
-
- return True
-
- except pymysql.Error as e:
- error_code, error_msg = e.args
- print("[失败] 数据库连接失败!")
- print(f"[失败] 错误代码: {error_code}")
- print(f"[失败] 错误信息: {error_msg}")
- return False
-
- except Exception as e:
- print("[失败] 发生未知错误!")
- print(f"[失败] 错误信息: {e}")
- return False
-
- finally:
- # 关闭数据库连接
- if connection:
- connection.close()
- print("-" * 50)
- print("[成功] 数据库连接已关闭")
- if __name__ == "__main__":
- print("=" * 50)
- print("数据库连接测试")
- print("=" * 50)
-
- success = test_db_connection()
-
- print("=" * 50)
- if success:
- print("测试结果: 成功")
- sys.exit(0)
- else:
- print("测试结果: 失败")
- sys.exit(1)
|