diff --git a/src/main/ipc/index.ts b/src/main/ipc/index.ts index d03b149..7706560 100644 --- a/src/main/ipc/index.ts +++ b/src/main/ipc/index.ts @@ -141,7 +141,8 @@ export function registerIpcHandlers(): void { } const mysqlPort = mysqlId ? (settings.mysqlPorts?.[mysqlId] || '3306') : settings.mysqlPort - const logFile = path.join(app.getPath('userData'), 'logs', `${serviceName}_error.log`) + const sanitizedServiceName = serviceName.replace(/:/g, '_') + const logFile = path.join(app.getPath('userData'), 'logs', `${sanitizedServiceName}_error.log`) const configPath = await configService.generateConfig('my.ini.template', `my_${mysqlId || 'default'}.ini`, { PORT: mysqlPort, diff --git a/src/main/services/MySqlManagerService.ts b/src/main/services/MySqlManagerService.ts index b53778f..30de8b4 100644 --- a/src/main/services/MySqlManagerService.ts +++ b/src/main/services/MySqlManagerService.ts @@ -46,7 +46,7 @@ export class MySqlManagerService { const catalog = JSON.parse(rawData) const releases = catalog.mysql_release_catalog.releases as any[] - const dynamicVersions: MySqlVersion[] = releases.map(v => { + const dynamicVersions: MySqlVersion[] = releases.map((v, index) => { const version = v.version const cycle = v.series @@ -58,7 +58,8 @@ export class MySqlManagerService { const url = `https://cdn.mysql.com/archives/mysql-${majorMinor}/mysql-${version}-winx64.zip` const settings = configService.getSettings() - const customPort = settings.mysqlPorts?.[`mysql-${version}`] || '3306' + const defaultPort = (3306 + index).toString() + const customPort = settings.mysqlPorts?.[`mysql-${version}`] || defaultPort return { id: `mysql-${version}`, diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 504215a..dfdaab9 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -622,7 +622,8 @@ function App(): JSX.Element { {v.status === 'installed' && ( { const newPorts = { ...(settings.mysqlPorts || {}), [v.id]: e.target.value } setSettings({ ...settings, mysqlPorts: newPorts }) @@ -825,7 +826,7 @@ function App(): JSX.Element { {getStatusChip(status[`mysql:${v.version}`] || 'stopped')} MySQL {v.version} - Port: {settings.mysqlPorts?.[v.id] || '3306'} + Port: {settings.mysqlPorts?.[v.id] || v.port} handleOpenLogs(`mysql:${v.version}`)} size="small" sx={{ bgcolor: 'rgba(255,255,255,0.05)' }}>