summaryrefslogtreecommitdiff
path: root/packaging
diff options
context:
space:
mode:
authorBalasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>2014-10-21 14:48:58 +0200
committerBalasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>2014-10-21 14:48:58 +0200
commit86221c15f3fa52800445222fe928f739df5ec37a (patch)
tree1f29ce50126099370ac0b4963ae7224732301d4b /packaging
parent38e582aa193c21242c966324c0eab4766e84b10b (diff)
downloadmariadb-git-86221c15f3fa52800445222fe928f739df5ec37a.tar.gz
Bug#19775856: When the socket option is relative, mysqld startup script fails on CentOS 6
Diffstat (limited to 'packaging')
-rw-r--r--packaging/rpm-oel/mysql-systemd-start22
-rw-r--r--packaging/rpm-oel/mysql.init8
2 files changed, 25 insertions, 5 deletions
diff --git a/packaging/rpm-oel/mysql-systemd-start b/packaging/rpm-oel/mysql-systemd-start
index 9cb2a25c990..8670f889574 100644
--- a/packaging/rpm-oel/mysql-systemd-start
+++ b/packaging/rpm-oel/mysql-systemd-start
@@ -8,10 +8,19 @@
# post mode : ping server until answer is received
#
+get_option () {
+ local section=$1
+ local option=$2
+ local default=$3
+ ret=$(/usr/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
+ [ -z $ret ] && ret=$default
+ echo $ret
+}
+
install_db () {
# Note: something different than datadir=/var/lib/mysql requires SELinux policy changes (in enforcing mode)
- datadir=$(/usr/bin/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p')
-
+ datadir=$(get_option mysqld datadir "/var/lib/mysql")
+
# Restore log, dir, perms and SELinux contexts
[ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || exit 1
log=/var/log/mysqld.log
@@ -35,9 +44,16 @@ pinger () {
# Wait for ping to answer to signal startup completed,
# might take a while in case of e.g. crash recovery
# MySQL systemd service will timeout script if no answer
+ datadir=$(get_option mysqld datadir "/var/lib/mysql")
+ socket=$(get_option mysqld socket "$datadir/mysql.sock")
+ case $socket in
+ /*) adminsocket="$socket" ;;
+ *) adminsocket="$datadir/$socket" ;;
+ esac
+
while /bin/true ; do
sleep 1
- mysqladmin ping >/dev/null 2>&1 && break
+ mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
done
exit 0
}
diff --git a/packaging/rpm-oel/mysql.init b/packaging/rpm-oel/mysql.init
index d6f8f023850..79c8a8daa7d 100644
--- a/packaging/rpm-oel/mysql.init
+++ b/packaging/rpm-oel/mysql.init
@@ -50,11 +50,15 @@ errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"
+case $socketfile in
+ /*) adminsocket="$socketfile" ;;
+ *) adminsocket="$datadir/$socketfile" ;;
+esac
start(){
[ -x $exec ] || exit 5
# check to see if it's already running
- RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
+ RESPONSE=$(/usr/bin/mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping 2>&1)
if [ $? = 0 ]; then
# already running, do nothing
action $"Starting $prog: " /bin/true
@@ -107,7 +111,7 @@ start(){
ret=0
TIMEOUT="$STARTTIMEOUT"
while [ $TIMEOUT -gt 0 ]; do
- RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1` && break
+ RESPONSE=$(/usr/bin/mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping 2>&1) && break
echo "$RESPONSE" | grep -q "Access denied for user" && break
if ! /bin/kill -0 $safe_pid 2>/dev/null; then
echo "MySQL Daemon failed to start."