@@ -70,18 +70,19 @@ start(){
7070 ret=0
7171 else
7272 # prepare for start
73- touch " $errlogfile "
74- chown mysql:mysql " $errlogfile "
75- chmod 0640 " $errlogfile "
73+ if [ ! -e " $errlogfile " -a ! -h " $errlogfile " -a " x $( dirname " $errlogfile " ) " = " x/var/log " ] ; then
74+ install /dev/null -m0640 -omysql -gmysql " $errlogfile "
75+ fi
7676 [ -x /sbin/restorecon ] && /sbin/restorecon " $errlogfile "
7777 if [ ! -d " $datadir /mysql" ] ; then
7878 # First, make sure $datadir is there with correct permissions
79- if [ ! -e " $datadir " -a ! -h " $datadir " ]
80- then
81- mkdir -p " $datadir " || exit 1
79+ if [ ! -d " $datadir " -a ! -h " $datadir " -a " x$( basedir " $datadir " ) " = " x/var/lib" ]; then
80+ install -d -m0755 -omysql -gmysql " $datadir " || exit 1
81+ fi
82+ if [ ! -h " $datadir " -a " x$( basedir " $datadir " ) " = " x/var/lib" ]; then
83+ chown mysql:mysql " $datadir "
84+ chmod 0755 " $datadir "
8285 fi
83- chown mysql:mysql " $datadir "
84- chmod 0755 " $datadir "
8586 if [ -x /sbin/restorecon ]; then
8687 /sbin/restorecon " $datadir "
8788 for dir in /var/lib/mysql-files ; do
@@ -94,13 +95,14 @@ start(){
9495 # Now create the database
9596 action $" Initializing MySQL database: " /usr/bin/mysql_install_db --rpm --datadir=" $datadir " --user=mysql
9697 ret=$?
97- chown -R mysql:mysql " $datadir "
9898 if [ $ret -ne 0 ] ; then
9999 return $ret
100100 fi
101101 fi
102- chown mysql:mysql " $datadir "
103- chmod 0755 " $datadir "
102+ if [ ! -h " $datadir " -a " x$( basedir " $datadir " ) " = " x/var/lib" ]; then
103+ chown mysql:mysql " $datadir "
104+ chmod 0755 " $datadir "
105+ fi
104106 # Pass all the options determined above, to ensure consistent behavior.
105107 # In many cases mysqld_safe would arrive at the same conclusions anyway
106108 # but we need to be sure. (An exception is that we don't force the
0 commit comments