22959660 mysql SMF service must not hardcode pid-file, socket and log-error
authorGipson Pulla <gipson.pulla@oracle.com>
Sun, 18 Dec 2016 20:43:50 -0800
changeset 7506 497cdd942859
parent 7505 2f08fe812455
child 7511 f204f26ea168
22959660 mysql SMF service must not hardcode pid-file, socket and log-error
components/mysql-5-5/Solaris/mysql_55
components/mysql-5-6/Solaris/mysql_56
components/mysql-5-7/Solaris/mysql_57
--- a/components/mysql-5-5/Solaris/mysql_55	Sat Dec 17 22:06:01 2016 -0800
+++ b/components/mysql-5-5/Solaris/mysql_55	Sun Dec 18 20:43:50 2016 -0800
@@ -40,7 +40,6 @@
 MYSQLCNF=`getproparg mysql/cnf`
 MYSQLBIN=`getproparg mysql/bin`
 MYSQLDATA=`getproparg mysql/data`
-PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
 STARTTIMEOUT=180
 
 if [ -z ${MYSQLCNF} ]; then
@@ -68,6 +67,24 @@
 	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA}
 fi
 
+
+getpidfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
+ echo $ret
+}
+
+getsockfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="/tmp/mysql.sock"
+ echo $ret
+}
+
+PIDFILE=$(getpidfile)
+SOCKFILE=$(getsockfile)
+
 # ping function which return success when mysqld starts accepting connections
 # or return failure in case of timeout after $STARTTIMEOUT seconds.
 # using this function in mysql_start(), method waits/blocks to mysqld is really ready,
@@ -79,7 +96,7 @@
     ret=0
     while [ $timer -gt 0 ]; do
         sleep 1
-        ${MYSQLBIN}/mysqladmin --no-defaults --socket="/tmp/mysql.sock" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+        ${MYSQLBIN}/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
 	timer=$(expr $timer - 1)
 
 	# Check if mysqld_safe is still alive, if not there is no hope
--- a/components/mysql-5-6/Solaris/mysql_56	Sat Dec 17 22:06:01 2016 -0800
+++ b/components/mysql-5-6/Solaris/mysql_56	Sun Dec 18 20:43:50 2016 -0800
@@ -40,7 +40,6 @@
 MYSQLCNF=`getproparg mysql/cnf`
 MYSQLBIN=`getproparg mysql/bin`
 MYSQLDATA=`getproparg mysql/data`
-PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
 STARTTIMEOUT=180
 
 if [ -z ${MYSQLCNF} ]; then
@@ -68,6 +67,23 @@
 	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} --defaults-file=${MYSQLCNF} 
 fi
 
+getpidfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
+ echo $ret
+}
+
+getsockfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="/tmp/mysql.sock"
+ echo $ret
+}
+
+PIDFILE=$(getpidfile)
+SOCKFILE=$(getsockfile)
+
 # ping function which return success when mysqld starts accepting connections
 # or return failure in case of timeout after $STARTTIMEOUT seconds.
 # using this function in mysql_start(), method waits/blocks to mysqld is really ready,
@@ -79,7 +95,7 @@
     ret=0
     while [ $timer -gt 0 ]; do
         sleep 1
-        ${MYSQLBIN}/mysqladmin --no-defaults --socket="/tmp/mysql.sock" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+        ${MYSQLBIN}/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
 	timer=$(expr $timer - 1)
 
 	# Check if mysqld_safe is still alive, if not there is no hope
--- a/components/mysql-5-7/Solaris/mysql_57	Sat Dec 17 22:06:01 2016 -0800
+++ b/components/mysql-5-7/Solaris/mysql_57	Sun Dec 18 20:43:50 2016 -0800
@@ -40,7 +40,6 @@
 MYSQLCNF=`getproparg mysql/cnf`
 MYSQLBIN=`getproparg mysql/bin`
 MYSQLDATA=`getproparg mysql/data`
-PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
 LOG_ERROR=${MYSQLDATA}/`/usr/bin/uname -n`.err
 STARTTIMEOUT=180
 
@@ -72,6 +71,23 @@
 	)
 fi
 
+getpidfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
+ echo $ret
+}
+
+getsockfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="/tmp/mysql.sock"
+ echo $ret
+}
+
+PIDFILE=$(getpidfile)
+SOCKFILE=$(getsockfile)
+
 # ping function which return success when mysqld starts accepting connections
 # or return failure in case of timeout after $STARTTIMEOUT seconds.
 # using this function in mysql_start(), method waits/blocks to mysqld is really ready,
@@ -83,7 +99,7 @@
     ret=0
     while [ $timer -gt 0 ]; do
         sleep 1
-        "${MYSQLBIN}"/mysqladmin --no-defaults --socket="/tmp/mysql.sock" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+        "${MYSQLBIN}"/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
 	timer=$(expr $timer - 1)
 
 	# Check if mysqld_safe is still alive, if not there is no hope