109 lines
3.1 KiB
Python
109 lines
3.1 KiB
Python
|
|
#!/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()
|