From d7ab5ff1b7e05d82ade0a8da0ebd0a63acdc7311 Mon Sep 17 00:00:00 2001 From: ssongliu Date: Tue, 7 Mar 2023 18:20:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AB=AF=E5=8F=A3=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=98=E5=9C=A8=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/service/app_install.go | 4 +++ backend/app/service/database_mysql.go | 2 +- backend/app/service/setting.go | 6 ++++ .../views/database/mysql/setting/index.vue | 28 ++++++++++++++++--- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/backend/app/service/app_install.go b/backend/app/service/app_install.go index 63baf8065..ccd6c0f1c 100644 --- a/backend/app/service/app_install.go +++ b/backend/app/service/app_install.go @@ -12,6 +12,7 @@ import ( "github.com/1Panel-dev/1Panel/backend/app/dto/request" "github.com/1Panel-dev/1Panel/backend/app/dto/response" + "github.com/1Panel-dev/1Panel/backend/buserr" "github.com/1Panel-dev/1Panel/backend/app/repo" @@ -269,6 +270,9 @@ func (a AppInstallService) GetUpdateVersions(installId uint) ([]dto.AppVersion, } func (a AppInstallService) ChangeAppPort(req request.PortUpdate) error { + if common.ScanPort(int(req.Port)) { + return buserr.WithDetail(constant.ErrPortInUsed, req.Port, nil) + } return updateInstallInfoInDB(req.Key, "", "port", true, strconv.FormatInt(req.Port, 10)) } diff --git a/backend/app/service/database_mysql.go b/backend/app/service/database_mysql.go index 99154a2ff..4bbbc8024 100644 --- a/backend/app/service/database_mysql.go +++ b/backend/app/service/database_mysql.go @@ -528,7 +528,7 @@ func updateMyCnf(oldFiles []string, group string, param string, value interface{ newFiles = append(newFiles, line) continue } - if strings.HasPrefix(line, param) || strings.HasPrefix(line, "# "+param) { + if strings.HasPrefix(line, param+"=") || strings.HasPrefix(line, "# "+param+"=") { newFiles = append(newFiles, fmt.Sprintf("%s=%v", param, value)) hasKey = true continue diff --git a/backend/app/service/setting.go b/backend/app/service/setting.go index bbb97c641..332960c7b 100644 --- a/backend/app/service/setting.go +++ b/backend/app/service/setting.go @@ -6,9 +6,11 @@ import ( "time" "github.com/1Panel-dev/1Panel/backend/app/dto" + "github.com/1Panel-dev/1Panel/backend/buserr" "github.com/1Panel-dev/1Panel/backend/constant" "github.com/1Panel-dev/1Panel/backend/global" "github.com/1Panel-dev/1Panel/backend/utils/cmd" + "github.com/1Panel-dev/1Panel/backend/utils/common" "github.com/1Panel-dev/1Panel/backend/utils/encrypt" "github.com/gin-gonic/gin" ) @@ -62,6 +64,10 @@ func (u *SettingService) Update(key, value string) error { } func (u *SettingService) UpdatePort(port uint) error { + if common.ScanPort(int(port)) { + return buserr.WithDetail(constant.ErrPortInUsed, port, nil) + } + if err := settingRepo.Update("ServerPort", strconv.Itoa(int(port))); err != nil { return err } diff --git a/frontend/src/views/database/mysql/setting/index.vue b/frontend/src/views/database/mysql/setting/index.vue index e170f2434..50c76c563 100644 --- a/frontend/src/views/database/mysql/setting/index.vue +++ b/frontend/src/views/database/mysql/setting/index.vue @@ -2,7 +2,7 @@
@@ -125,6 +130,7 @@ import { MsgSuccess } from '@/utils/message'; const loading = ref(false); +const baseDir = ref(); const extensions = [javascript(), oneDark]; const activeName = ref('conf'); @@ -172,6 +178,17 @@ const onClose = (): void => { onSetting.value = false; }; +const jumpToConf = async () => { + activeName.value = 'conf'; + const pathRes = await loadBaseDir(); + loadMysqlConf(`${pathRes.data}/apps/mysql/${mysqlName.value}/conf/my.cnf`); +}; + +const jumpToSlowlog = async () => { + activeName.value = 'slowLog'; + loadSlowLogs(); +}; + const onSubmitChangePort = async () => { let params = { key: 'mysql', @@ -255,6 +272,7 @@ const loadBaseInfo = async () => { baseInfo.port = res.data?.port; baseInfo.containerID = res.data?.containerName; const pathRes = await loadBaseDir(); + baseDir.value = pathRes.data; loadMysqlConf(`${pathRes.data}/apps/mysql/${mysqlName.value}/conf/my.cnf`); loadContainerLog(baseInfo.containerID); }; @@ -274,7 +292,9 @@ const loadVariables = async () => { }; const loadSlowLogs = async () => { - await Promise.all([loadBaseInfo(), loadVariables()]); + const res = await loadMysqlVariables(); + variables.value = res.data; + let param = { mysqlName: mysqlName.value, variables: variables.value,