Passer les informations d'identification mysql à pt-stalk sans les avoir visibles sur la command line

J'essaie de déployer pt-stalk avec un script init, mais j'ai du mal à get les informations d'identification mysql dans le script sans les mettre dans la section MYSQL_OPTS pour le lancement de pt- MYSQL_OPTS . [ Documentation ]

Normalement, sur les servers, nous avons /root/.my.cnf contenant les informations d'identification de l'administrateur pour cette machine, mais peu importe si je définis la HOME dans le script explicitement vers /root dans le script d'initialisation. Pt-stalk ne parvient pas à démarrer car le mysql L'utilitaire CLI ne peut pas find les informations d'identification.

J'ai parcouru la page man, mais je ne trouve rien qui me permette de spécifier un file d'informations d'identification à utiliser plutôt que de mettre tout comme argument de command line.

L'init script en question:

 #!/usr/bin/env bash # chkconfig: 2345 20 80 # description: pt-stalk ### BEGIN INIT INFO # Provides: pt-stalk # Required-Start: $network $named $remote_fs $syslog # Required-Stop: $network $named $remote_fs $syslog # Should-Start: pt-stalk # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO export HOME=/root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON="/usr/bin/pt-stalk" DAEMON_OPTS="--config /etc/pt-stalk.conf" NAME="pt-stalk" DESC="pt-stalk" PIDFILE="/var/run/${NAME}.pid" STALKHOME="/var/lib/pt-stalk" test -x $DAEMON || exit 1 [ -r /etc/default/pt-stalk ] && . /etc/default/pt-stalk #. /lib/lsb/init-functions sig () { test -s "$PIDFILE" && kill -$1 `cat $PIDFILE` } start() { if [[ -z $MYSQL_OPTS ]]; then HOME=$STALKHOME $DAEMON $DAEMON_OPTS else HOME=$STALKHOME $DAEMON $DAEMON_OPTS -- $MYSQL_OPTS fi return $? } stop() { if sig TERM; then while sig 0 ; do echo -n "." sleep 1 done return 0 else echo "$DESC is not running." return 1 fi } status() { if sig 0 ; then echo "$DESC (`cat $PIDFILE`) is running." return 0 else echo "$DESC is stopped." return 1 fi } log_begin_msg() { echo $1 } log_end_msg() { if [ $1 -eq 0 ]; then echo "Success" else echo "Failure" fi } case "$1" in start) log_begin_msg "Starting $DESC" start log_end_msg $? ;; stop) log_begin_msg "Stopping $DESC" stop log_end_msg $? ;; status) status ;; restart) log_begin_msg "Restarting $DESC" stop sleep 1 start log_end_msg $? ;; *) echo "Usage: $0 {start|stop|status|}" >&2 exit 1 ;; esac 

Originaire de GitHub avec quelques modifications mineures.

L' exemple de cette page semble suggérer de passer le --defaults-file=./my.default.cnf comme option de pt-stalk.

Donc, mettez à jour votre variable $MYSQL_OPTS pour que cela soit une valeur, vous donnant probablement un path absolu vers vous un file de configuration mysql (.my.cnf) stocké quelque part que la command pt-stalk peut lire.