Files
tsp-assistant/create_mysql_db.py
2025-09-06 21:06:18 +08:00

109 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
MySQL数据库创建脚本
"""
import pymysql
import sys
def create_database():
"""创建MySQL数据库"""
print("=" * 50)
print("MySQL数据库创建")
print("=" * 50)
try:
# 连接MySQL服务器不指定数据库
connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
charset='utf8mb4'
)
cursor = connection.cursor()
# 创建数据库
database_name = 'tsp_assistant'
cursor.execute(f"CREATE DATABASE IF NOT EXISTS {database_name} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci")
print(f"✓ 数据库 {database_name} 创建成功")
# 创建用户(可选)
try:
cursor.execute("CREATE USER IF NOT EXISTS 'tsp_user'@'localhost' IDENTIFIED BY 'tsp_password'")
cursor.execute(f"GRANT ALL PRIVILEGES ON {database_name}.* TO 'tsp_user'@'localhost'")
cursor.execute("FLUSH PRIVILEGES")
print("✓ 用户 tsp_user 创建成功")
except Exception as e:
print(f"⚠ 用户创建失败(可能已存在): {e}")
connection.commit()
cursor.close()
connection.close()
print("✓ MySQL数据库设置完成")
return True
except Exception as e:
print(f"✗ MySQL数据库创建失败: {e}")
print("\n请检查:")
print("1. MySQL服务是否已启动")
print("2. 用户名和密码是否正确")
print("3. 是否有创建数据库的权限")
return False
def test_connection():
"""测试数据库连接"""
print("\n" + "=" * 50)
print("测试数据库连接")
print("=" * 50)
try:
connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='tsp_assistant',
charset='utf8mb4'
)
cursor = connection.cursor()
cursor.execute("SELECT VERSION()")
version = cursor.fetchone()
print(f"✓ MySQL连接成功版本: {version[0]}")
cursor.close()
connection.close()
return True
except Exception as e:
print(f"✗ MySQL连接失败: {e}")
return False
def main():
"""主函数"""
print("TSP助手MySQL数据库设置工具")
print("=" * 50)
# 创建数据库
if create_database():
# 测试连接
if test_connection():
print("\n" + "=" * 50)
print("MySQL数据库设置成功")
print("=" * 50)
print("现在您可以运行以下命令初始化数据库:")
print("python init_database.py")
else:
print("\n" + "=" * 50)
print("数据库连接测试失败!")
print("=" * 50)
else:
print("\n" + "=" * 50)
print("MySQL数据库设置失败")
print("=" * 50)
if __name__ == "__main__":
main()