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
 

Reply via email to