| import os |
| import re |
|
|
| from typing import Optional, Dict, List, Union, Tuple |
|
|
| from .base import BaseDatabaseTool, panelMysql, database |
| from .util import read_file, write_file, DB, GET_CLASS |
|
|
|
|
| class MysqlTool(BaseDatabaseTool): |
| _type_name = "mysql" |
|
|
| def local_server_info(self) -> Optional[Dict]: |
| bin_path = "/www/server/mysql/bin/mysql" |
| if not os.path.isfile(bin_path): |
| return None |
|
|
| conf_file = '/etc/my.cnf' |
| conf = read_file(conf_file) |
| default_port = 3306 |
| if not isinstance(conf, str): |
| port = default_port |
| else: |
| rep_port = re.compile(r"\s*port\s*=\s*(?P<port>\d+)", re.M) |
| port_res = rep_port.search(conf) |
| if not port_res: |
| port = default_port |
| else: |
| port = int(port_res.group("port")) |
|
|
| return { |
| 'id': 0, |
| 'db_host': '127.0.0.1', |
| 'db_port': port, |
| 'db_user': 'root', |
| 'db_password': '', |
| 'ps': '本地服务器', |
| 'addtime': 0 |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| def add_database(self, server_id: int, database_name: str, **kwargs) -> Tuple[bool, str]: |
| get_obj = GET_CLASS() |
| get_obj.name = database_name |
| get_obj.sid = server_id |
| get_obj.db_user = kwargs.get("db_user", "") |
| get_obj.password = kwargs.get("password", "") |
| get_obj.dataAccess = kwargs.get("dataAccess", "") |
| get_obj.address = kwargs.get("address", "") |
| get_obj.codeing = kwargs.get("codeing", "") |
| get_obj.dtype = "MySQL" |
| get_obj.ps = kwargs.get("ps", "") |
| get_obj.host = kwargs.get("host", "") |
| get_obj.pid = str(kwargs.get("pid", '0')) |
| res = database().AddDatabase(get_obj) |
| if res["status"] is True: |
| return True, "添加成功" |
| else: |
| return False, res['msg'] |
|
|