components/mysql-5-5/Solaris/mysql_55
changeset 7506 497cdd942859
parent 6277 073d7b623ddf
equal deleted inserted replaced
7505:2f08fe812455 7506:497cdd942859
    38 }
    38 }
    39 
    39 
    40 MYSQLCNF=`getproparg mysql/cnf`
    40 MYSQLCNF=`getproparg mysql/cnf`
    41 MYSQLBIN=`getproparg mysql/bin`
    41 MYSQLBIN=`getproparg mysql/bin`
    42 MYSQLDATA=`getproparg mysql/data`
    42 MYSQLDATA=`getproparg mysql/data`
    43 PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
       
    44 STARTTIMEOUT=180
    43 STARTTIMEOUT=180
    45 
    44 
    46 if [ -z ${MYSQLCNF} ]; then
    45 if [ -z ${MYSQLCNF} ]; then
    47         echo "mysql/cnf property not set"
    46         echo "mysql/cnf property not set"
    48         exit $SMF_EXIT_ERR_CONFIG
    47         exit $SMF_EXIT_ERR_CONFIG
    66 if [ ! -d ${MYSQLDATA}/mysql ]; then
    65 if [ ! -d ${MYSQLDATA}/mysql ]; then
    67 	echo ${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA}
    66 	echo ${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA}
    68 	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA}
    67 	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA}
    69 fi
    68 fi
    70 
    69 
       
    70 
       
    71 getpidfile() {
       
    72  ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
       
    73  mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
       
    74  [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
       
    75  echo $ret
       
    76 }
       
    77 
       
    78 getsockfile() {
       
    79  ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
       
    80  mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
       
    81  [ -z "$ret" ] && ret="/tmp/mysql.sock"
       
    82  echo $ret
       
    83 }
       
    84 
       
    85 PIDFILE=$(getpidfile)
       
    86 SOCKFILE=$(getsockfile)
       
    87 
    71 # ping function which return success when mysqld starts accepting connections
    88 # ping function which return success when mysqld starts accepting connections
    72 # or return failure in case of timeout after $STARTTIMEOUT seconds.
    89 # or return failure in case of timeout after $STARTTIMEOUT seconds.
    73 # using this function in mysql_start(), method waits/blocks to mysqld is really ready,
    90 # using this function in mysql_start(), method waits/blocks to mysqld is really ready,
    74 # which might take some time in case of recovery.
    91 # which might take some time in case of recovery.
    75 
    92 
    77     mysqld_safe_pid=$1
    94     mysqld_safe_pid=$1
    78     timer=$STARTTIMEOUT
    95     timer=$STARTTIMEOUT
    79     ret=0
    96     ret=0
    80     while [ $timer -gt 0 ]; do
    97     while [ $timer -gt 0 ]; do
    81         sleep 1
    98         sleep 1
    82         ${MYSQLBIN}/mysqladmin --no-defaults --socket="/tmp/mysql.sock" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
    99         ${MYSQLBIN}/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
    83 	timer=$(expr $timer - 1)
   100 	timer=$(expr $timer - 1)
    84 
   101 
    85 	# Check if mysqld_safe is still alive, if not there is no hope
   102 	# Check if mysqld_safe is still alive, if not there is no hope
    86 	if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
   103 	if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
    87 	    ret=1
   104 	    ret=1