This is an automated email from the ASF dual-hosted git repository. liuhaopeng pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git
The following commit(s) were added to refs/heads/main by this push: new c6279ab9 BIGTOP-4451: Error starting mysql when mysql client already installed via package manager (#233) c6279ab9 is described below commit c6279ab9a5d4ec84ae5e0e971d87ba8eebc7df74 Author: Zhiguo Wu <wuzhi...@apache.org> AuthorDate: Thu Jun 26 15:16:21 2025 +0800 BIGTOP-4451: Error starting mysql when mysql client already installed via package manager (#233) --- .../1.0.0/services/mysql/configuration/my.cnf.xml | 12 +++++++++++- .../stack/core/utils/linux/LinuxFileUtils.java | 1 + .../stack/core/utils/linux/LinuxOSUtils.java | 1 + .../stack/infra/v1_0_0/mysql/MySQLParams.java | 17 +++++++++++++---- .../stack/infra/v1_0_0/mysql/MySQLServerScript.java | 21 +++++++++++++-------- .../stack/infra/v1_0_0/mysql/MySQLSetup.java | 1 + dev-support/docker/image/Dockerfile.openeuler24 | 2 +- dev-support/docker/image/Dockerfile.rocky8 | 2 +- 8 files changed, 42 insertions(+), 15 deletions(-) diff --git a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/configuration/my.cnf.xml b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/configuration/my.cnf.xml index b38af8b5..1736748a 100644 --- a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/configuration/my.cnf.xml +++ b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/configuration/my.cnf.xml @@ -31,6 +31,12 @@ <display-name>MySQL PID Dir</display-name> <description>MySQL Pid Dir</description> </property> + <property> + <name>mysql_data_dir</name> + <value>${mysql_home}/data</value> + <display-name>MySQL Data Dir</display-name> + <description>MySQL Data Dir</description> + </property> <!-- my.cnf --> <property> <name>content</name> @@ -40,13 +46,17 @@ [mysqld] port=3306 basedir=${mysql_home} -datadir=${mysql_home}/data +datadir=${mysql_data_dir} +socket=/tmp/mysql.sock pid-file = ${mysql_pid_dir}/mysqld.pid log-error = ${mysql_log_dir}/error.log general-log-file = ${mysql_log_dir}/general.log slow-query-log-file = ${mysql_log_dir}/slow.log log-bin = ${mysql_log_dir}/mysql-bin.log default-storage-engine=INNODB + +[client] +socket=/tmp/mysql.sock ]]> </value> <attrs> diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxFileUtils.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxFileUtils.java index 39474a6a..fbee45be 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxFileUtils.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxFileUtils.java @@ -158,6 +158,7 @@ public class LinuxFileUtils { */ public static void createDirectories( String dirPath, String owner, String group, String permissions, boolean recursive) { + log.info("Creating directory: [{}]", dirPath); if (StringUtils.isBlank(dirPath)) { log.error("dirPath must not be null"); return; diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxOSUtils.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxOSUtils.java index e3cf4726..916dea6f 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxOSUtils.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxOSUtils.java @@ -76,6 +76,7 @@ public class LinuxOSUtils { builderParameters.add("sh"); builderParameters.add("-c"); builderParameters.add(command); + log.info("Running command: [{}], user: [{}]", command, tenant); return ShellExecutor.execCommand(builderParameters); } diff --git a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java index 73deafa7..b7bc49b0 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java +++ b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java @@ -37,8 +37,9 @@ import java.util.Map; @NoArgsConstructor public class MySQLParams extends InfraParams { - private String mysqlLogDir = "/var/log/mysql"; - private String mysqlPidDir = "/var/run/mysql"; + private String mysqlLogDir; + private String mysqlPidDir; + private String mysqlDataDir; private String rootPassword; private String myCnfContent; @@ -54,6 +55,16 @@ public class MySQLParams extends InfraParams { common(); } + @Override + public void initGlobalParams() { + super.initGlobalParams(); + + Map<String, Object> map = getGlobalParamsMap(); + mysqlPidDir = map.get("mysql_pid_dir").toString(); + mysqlLogDir = map.get("mysql_log_dir").toString(); + mysqlDataDir = map.get("mysql_data_dir").toString(); + } + public Map<String, Object> common() { Map<String, Object> common = LocalSettings.configurations(getServiceName(), "common"); rootPassword = common.get("root_password").toString(); @@ -63,8 +74,6 @@ public class MySQLParams extends InfraParams { @GlobalParams public Map<String, Object> myCnf() { Map<String, Object> myCnf = LocalSettings.configurations(getServiceName(), "my.cnf"); - mysqlPidDir = myCnf.get("mysql_pid_dir").toString(); - mysqlLogDir = myCnf.get("mysql_log_dir").toString(); myCnfContent = myCnf.get("content").toString(); return myCnf; } diff --git a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java index 351613fa..6ba9e2da 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLServerScript.java @@ -56,7 +56,8 @@ public class MySQLServerScript extends AbstractServerScript { public ShellResult init(Params params) { String user = params.user(); String binDir = params.serviceHome() + "/bin"; - runCommand(binDir + "/mysqld --initialize-insecure", user); + String confPath = params.serviceHome() + "/my.cnf"; + runCommand(binDir + "/mysqld --defaults-file=" + confPath + " --initialize-insecure", user); return ShellResult.success(); } @@ -93,24 +94,28 @@ public class MySQLServerScript extends AbstractServerScript { MySQLParams mysqlParams = (MySQLParams) params; String user = params.user(); String binDir = params.serviceHome() + "/bin"; + String confPath = params.serviceHome() + "/my.cnf"; String password = mysqlParams.getRootPassword(); runCommand( MessageFormat.format( - "{0}/mysql -u root -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY ''{1}'';\"", - binDir, password), + "{0}/mysql --defaults-file={1} -u root -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY ''{2}'';\"", + binDir, confPath, password), user); runCommand( MessageFormat.format( - "{0}/mysql -u root -p''{1}'' -e \"CREATE USER ''root''@''%'' IDENTIFIED BY ''{1}'';\"", - binDir, password), + "{0}/mysql --defaults-file={1} -u root -p''{2}'' -e \"CREATE USER ''root''@''%'' IDENTIFIED BY ''{2}'';\"", + binDir, confPath, password), user); runCommand( MessageFormat.format( - "{0}/mysql -u root -p''{1}'' -e \"GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' WITH GRANT OPTION;\"", - binDir, password), + "{0}/mysql --defaults-file={1} -u root -p''{2}'' -e \"GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' WITH GRANT OPTION;\"", + binDir, confPath, password), user); runCommand( - MessageFormat.format("{0}/mysql -u root -p''{1}'' -e \"FLUSH PRIVILEGES;\"", binDir, password), user); + MessageFormat.format( + "{0}/mysql --defaults-file={1} -u root -p''{2}'' -e \"FLUSH PRIVILEGES;\"", + binDir, confPath, password), + user); return ShellResult.success(); } diff --git a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLSetup.java b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLSetup.java index 097b4c41..58899ff7 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLSetup.java +++ b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLSetup.java @@ -44,6 +44,7 @@ public class MySQLSetup { LinuxFileUtils.createDirectories(mysqlParams.getMysqlLogDir(), mysqlUser, mysqlGroup, PERMISSION_755, true); LinuxFileUtils.createDirectories(mysqlParams.getMysqlPidDir(), mysqlUser, mysqlGroup, PERMISSION_755, true); + LinuxFileUtils.createDirectories(mysqlParams.getMysqlDataDir(), mysqlUser, mysqlGroup, PERMISSION_755, true); LinuxFileUtils.toFileByTemplate( mysqlParams.getMyCnfContent(), diff --git a/dev-support/docker/image/Dockerfile.openeuler24 b/dev-support/docker/image/Dockerfile.openeuler24 index f8d8b68a..8866a9ca 100644 --- a/dev-support/docker/image/Dockerfile.openeuler24 +++ b/dev-support/docker/image/Dockerfile.openeuler24 @@ -16,7 +16,7 @@ FROM openeuler/openeuler:24.03 RUN dnf install -y sudo wget openssh-clients openssh-server mariadb mariadb-server net-tools chrony krb5-server krb5-libs krb5-workstation git python3 procps-ng -RUN dnf install -y postgresql java-17-openjdk-devel vim +RUN dnf install -y postgresql java-17-openjdk-devel vim numactl ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk ENV PATH=$JAVA_HOME/bin:$PATH diff --git a/dev-support/docker/image/Dockerfile.rocky8 b/dev-support/docker/image/Dockerfile.rocky8 index 2a89b51b..5c7091ca 100644 --- a/dev-support/docker/image/Dockerfile.rocky8 +++ b/dev-support/docker/image/Dockerfile.rocky8 @@ -16,7 +16,7 @@ FROM rockylinux/rockylinux:8 RUN yum -y install sudo wget openssh-clients openssh-server vim postgresql mariadb mariadb-server net-tools chrony krb5-server krb5-libs krb5-workstation git rpm-build python3 procps-ng -RUN dnf install -y postgresql java-17-openjdk-devel vim +RUN dnf install -y postgresql java-17-openjdk-devel vim numactl ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk ENV PATH=$JAVA_HOME/bin:$PATH