Skip to content

Commit 4d71b13

Browse files
committed
Merge branch 'mysql-5.6' into mysql-5.7
2 parents 44853b8 + 634b7a8 commit 4d71b13

File tree

4 files changed

+40
-20
lines changed

4 files changed

+40
-20
lines changed

Diff for: packaging/rpm-oel/mysql.init

+14-11
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,20 @@ start(){
8484
ret=0
8585
else
8686
# prepare for start
87-
touch "$errlogfile"
88-
chown mysql:mysql "$errlogfile"
89-
chmod 0640 "$errlogfile"
87+
if [ ! -e "$errlogfile" -a ! -h "$errlogfile" -a "x$(dirname "$errlogfile")" = "x/var/log" ]; then
88+
install /dev/null -m0640 -omysql -gmysql "$errlogfile"
89+
fi
9090
[ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
9191
if [ ! -d "$datadir/mysql" ] ; then
9292
# First, make sure $datadir is there with correct permissions
93-
if [ ! -e "$datadir" -a ! -h "$datadir" ]
94-
then
95-
mkdir -p "$datadir" || exit 1
93+
if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then
94+
install -d -m0751 -omysql -gmysql "$datadir" || exit 1
9695
fi
97-
chown mysql:mysql "$datadir"
98-
chmod 0751 "$datadir"
99-
if [ -x /sbin/restorecon ] ; then
96+
if [ ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then
97+
chown mysql:mysql "$datadir"
98+
chmod 0751 "$datadir"
99+
fi
100+
if [ -x /sbin/restorecon ]; then
100101
/sbin/restorecon "$datadir"
101102
for dir in /var/lib/mysql-files /var/lib/mysql-keyring ; do
102103
if [ -x /usr/sbin/semanage -a -d /var/lib/mysql -a -d $dir ] ; then
@@ -120,8 +121,10 @@ start(){
120121
/usr/bin/mysql_ssl_rsa_setup --datadir="$datadir" --uid=mysql >/dev/null 2>&1
121122
fi
122123
fi
123-
chown mysql:mysql "$datadir"
124-
chmod 0751 "$datadir"
124+
if [ ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then
125+
chown mysql:mysql "$datadir"
126+
chmod 0751 "$datadir"
127+
fi
125128
# Pass all the options determined above, to ensure consistent behavior.
126129
# In many cases mysqld_safe would arrive at the same conclusions anyway
127130
# but we need to be sure. (An exception is that we don't force the

Diff for: packaging/rpm-sles/mysql.init

+7-6
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ get_option () {
6868
datadir=$(get_option mysqld datadir "/var/lib/mysql")
6969
socket=$(get_option mysqld socket "$datadir/mysql.sock")
7070
pidfile=$(get_option mysqld_safe pid-file "/var/run/mysql/mysqld.pid")
71-
logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log")
7271

7372
install_validate_password_sql_file () {
7473
local dir
@@ -91,14 +90,16 @@ install_db () {
9190
logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log")
9291

9392
# Restore log, dir, perms and SELinux contexts
94-
[ -d "$datadir" ] || install -d -m 0751 -omysql -gmysql "$datadir" || return 1
93+
if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then
94+
install -d -m 0751 -omysql -gmysql "$datadir" || return 1
95+
fi
9596

96-
[ -e $logfile ] || touch $logfile || return 1
97-
chmod 0640 $logfile
98-
chown mysql:mysql $logfile || return 1
97+
if [ ! -e "$logfile" -a ! -h "$logfile" -a "x$(dirname "$logfile")" = "x/var/log/mysql" ]; then
98+
install /dev/null -omysql -gmysql "$logfile" || return 1
99+
fi
99100
if [ -x /usr/sbin/restorecon ]; then
100101
/usr/sbin/restorecon "$datadir"
101-
/usr/sbin/restorecon $logfile
102+
/usr/sbin/restorecon "$logfile"
102103
fi
103104

104105
# If special mysql dir is in place, skip db install

Diff for: scripts/mysqld_safe.sh

+16-2
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,13 @@ parse_arguments() {
234234

235235
# mysqld_safe-specific options - must be set in my.cnf ([mysqld_safe])!
236236
--core-file-size=*) core_file_size="$val" ;;
237-
--ledir=*) ledir="$val" ;;
237+
--ledir=*)
238+
if [ -z "$pick_args" ]; then
239+
log_error "--ledir option can only be used as command line option, found in config file"
240+
exit 1
241+
fi
242+
ledir="$val"
243+
;;
238244
--malloc-lib=*) set_malloc_lib "$val" ;;
239245
--mysqld=*)
240246
if [ -z "$pick_args" ]; then
@@ -411,7 +417,15 @@ else
411417
relpkgdata='@pkgdatadir@'
412418
fi
413419

414-
MY_PWD=`pwd`
420+
case "$0" in
421+
/*)
422+
MY_PWD='@prefix@'
423+
;;
424+
*)
425+
MY_PWD=`dirname $0`
426+
MY_PWD=`dirname $MY_PWD`
427+
;;
428+
esac
415429
# Check for the directories we would expect from a binary release install
416430
if test -n "$MY_BASEDIR_VERSION" -a -d "$MY_BASEDIR_VERSION"
417431
then

Diff for: scripts/systemd/mysqld_pre_systemd.in

+3-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ install_db () {
4646

4747
# Restore log, dir, perms and SELinux contexts
4848

49-
[ -d "$datadir" ] || install -d -m 0751 -o@MYSQLD_USER@ -g@MYSQLD_USER@ "$datadir" || exit 1
49+
if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then
50+
install -d -m 0751 -o@MYSQLD_USER@ -g@MYSQLD_USER@ "$datadir" || exit 1
51+
fi
5052

5153
if [ ! -e "$log" -a ! -h "$log" -a x$(dirname "$log") = "x/var/log" ]; then
5254
case $(basename "$log") in

0 commit comments

Comments
 (0)