Port scripts for systemd unit from MariaDB
This commit is contained in:
parent
c8c069a981
commit
dfd59cb65f
32
community-mysql-scripts.patch
Normal file
32
community-mysql-scripts.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
diff -rup mysql-5.6.19-orig/scripts/CMakeLists.txt mysql-5.6.19/scripts/CMakeLists.txt
|
||||||
|
--- mysql-5.6.19-orig/scripts/CMakeLists.txt 2014-07-22 10:07:12.053410263 +0200
|
||||||
|
+++ mysql-5.6.19/scripts/CMakeLists.txt 2014-07-22 10:10:44.102502369 +0200
|
||||||
|
@@ -381,6 +381,28 @@ ELSE()
|
||||||
|
ENDIF()
|
||||||
|
INSTALL_SCRIPT(${CMAKE_CURRENT_BINARY_DIR}/${file} COMPONENT ${${file}_COMPONENT})
|
||||||
|
ENDFOREACH()
|
||||||
|
+
|
||||||
|
+ # files for systemd
|
||||||
|
+ SET(SYSTEMD_SCRIPTS
|
||||||
|
+ mysql.tmpfiles.d
|
||||||
|
+ mysqld.service
|
||||||
|
+ mysqld-prepare-db-dir
|
||||||
|
+ mysqld-wait-ready
|
||||||
|
+ mysqld-check-socket
|
||||||
|
+ mysqld-scripts-common
|
||||||
|
+ )
|
||||||
|
+ FOREACH(file ${SYSTEMD_SCRIPTS})
|
||||||
|
+ IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh)
|
||||||
|
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh
|
||||||
|
+ ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY)
|
||||||
|
+ ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in)
|
||||||
|
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.in
|
||||||
|
+ ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY)
|
||||||
|
+ ELSE()
|
||||||
|
+ MESSAGE(FATAL_ERROR "Can not find ${file}.sh or ${file}.in in "
|
||||||
|
+ "${CMAKE_CURRENT_SOURCE_DIR}" )
|
||||||
|
+ ENDIF()
|
||||||
|
+ ENDFOREACH()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Install libgcc as mylibgcc.a
|
@ -22,9 +22,12 @@
|
|||||||
# my.cnf and my.cnf.d
|
# my.cnf and my.cnf.d
|
||||||
%global ship_my_cnf 0
|
%global ship_my_cnf 0
|
||||||
|
|
||||||
|
# Name for the systemd unit file
|
||||||
|
%global daemon_name mysqld.service
|
||||||
|
|
||||||
Name: community-mysql
|
Name: community-mysql
|
||||||
Version: 5.6.19
|
Version: 5.6.19
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: MySQL client programs and shared libraries
|
Summary: MySQL client programs and shared libraries
|
||||||
Group: Applications/Databases
|
Group: Applications/Databases
|
||||||
URL: http://www.mysql.com
|
URL: http://www.mysql.com
|
||||||
@ -39,10 +42,12 @@ Source4: mysql_config_multilib.sh
|
|||||||
Source5: my_config.h
|
Source5: my_config.h
|
||||||
Source6: README.mysql-docs
|
Source6: README.mysql-docs
|
||||||
Source7: README.mysql-license
|
Source7: README.mysql-license
|
||||||
Source10: mysql.tmpfiles.d
|
Source10: mysql.tmpfiles.d.in
|
||||||
Source11: mysqld.service
|
Source11: mysqld.service.in
|
||||||
Source12: mysqld-prepare-db-dir
|
Source12: mysqld-prepare-db-dir.sh
|
||||||
Source13: mysqld-wait-ready
|
Source13: mysqld-wait-ready.sh
|
||||||
|
Source14: mysqld-check-socket.sh
|
||||||
|
Source15: mysqld-scripts-common.sh
|
||||||
# To track rpmlint warnings
|
# To track rpmlint warnings
|
||||||
Source17: mysql-5.6.10-rpmlintrc
|
Source17: mysql-5.6.10-rpmlintrc
|
||||||
|
|
||||||
@ -63,6 +68,7 @@ Patch25: community-mysql-5.6.16-mysql-install.patch
|
|||||||
Patch26: community-mysql-5.6.13-major.patch
|
Patch26: community-mysql-5.6.13-major.patch
|
||||||
Patch34: community-mysql-pluginerrmsg.patch
|
Patch34: community-mysql-pluginerrmsg.patch
|
||||||
Patch35: community-mysql-5.6.19-gcc49-aarch64-opt.patch
|
Patch35: community-mysql-5.6.19-gcc49-aarch64-opt.patch
|
||||||
|
Patch37: community-mysql-scripts.patch
|
||||||
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: dos2unix
|
BuildRequires: dos2unix
|
||||||
@ -147,7 +153,7 @@ MySQL package.
|
|||||||
|
|
||||||
Summary: The error messages files required by server and embedded
|
Summary: The error messages files required by server and embedded
|
||||||
Group: Applications/Databases
|
Group: Applications/Databases
|
||||||
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
|
Requires: %{name}-common%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description errmsg
|
%description errmsg
|
||||||
The package provides error messages files for the MySQL daemon and the
|
The package provides error messages files for the MySQL daemon and the
|
||||||
@ -276,6 +282,7 @@ the MySQL sources.
|
|||||||
%endif
|
%endif
|
||||||
%patch34 -p1
|
%patch34 -p1
|
||||||
%patch35 -p1
|
%patch35 -p1
|
||||||
|
%patch37 -p1
|
||||||
|
|
||||||
# Modify tests to pass on all archs
|
# Modify tests to pass on all archs
|
||||||
pushd mysql-test
|
pushd mysql-test
|
||||||
@ -313,6 +320,9 @@ add_test 'main.upgrade : unknown'
|
|||||||
%endif
|
%endif
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
cp %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} \
|
||||||
|
%{SOURCE15} scripts
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# fail quickly and obviously if user tries to build as root
|
# fail quickly and obviously if user tries to build as root
|
||||||
%if %runselftest
|
%if %runselftest
|
||||||
@ -332,6 +342,7 @@ mkdir build && pushd build
|
|||||||
cmake .. -DBUILD_CONFIG=mysql_release \
|
cmake .. -DBUILD_CONFIG=mysql_release \
|
||||||
-DFEATURE_SET="community" \
|
-DFEATURE_SET="community" \
|
||||||
-DINSTALL_LAYOUT=RPM \
|
-DINSTALL_LAYOUT=RPM \
|
||||||
|
-DDAEMON_NAME="%{daemon_name}" \
|
||||||
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
|
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
|
||||||
%if 0%{?fedora} >= 20
|
%if 0%{?fedora} >= 20
|
||||||
-DINSTALL_DOCDIR="share/doc/%{name}" \
|
-DINSTALL_DOCDIR="share/doc/%{name}" \
|
||||||
@ -401,11 +412,13 @@ install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/my.cnf
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# install systemd unit files and scripts for handling server startup
|
# install systemd unit files and scripts for handling server startup
|
||||||
install -D -p -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{basename:%SOURCE11}
|
install -D -p -m 644 scripts/mysqld.service %{buildroot}%{_unitdir}/%{daemon_name}
|
||||||
install -p -m 755 %{SOURCE12} %{buildroot}%{_libexecdir}/
|
install -p -m 755 scripts/mysqld-prepare-db-dir %{buildroot}%{_libexecdir}/mysqld-prepare-db-dir
|
||||||
install -p -m 755 %{SOURCE13} %{buildroot}%{_libexecdir}/
|
install -p -m 755 scripts/mysqld-wait-ready %{buildroot}%{_libexecdir}/mysqld-wait-ready
|
||||||
|
install -p -m 755 scripts/mysqld-check-socket %{buildroot}%{_libexecdir}/mysqld-check-socket
|
||||||
|
install -p -m 644 scripts/mysqld-scripts-common %{buildroot}%{_libexecdir}/mysqld-scripts-common
|
||||||
|
|
||||||
install -D -p -m 0644 %{SOURCE10} %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
install -D -p -m 0644 scripts/mysql.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
||||||
|
|
||||||
# mysql-test includes one executable that doesn't belong under /usr/share,
|
# mysql-test includes one executable that doesn't belong under /usr/share,
|
||||||
# so move it and provide a symlink
|
# so move it and provide a symlink
|
||||||
@ -489,18 +502,18 @@ popd
|
|||||||
%post embedded -p /sbin/ldconfig
|
%post embedded -p /sbin/ldconfig
|
||||||
|
|
||||||
%post server
|
%post server
|
||||||
%systemd_post mysqld.service
|
%systemd_post %{daemon_name}
|
||||||
/bin/touch %{_localstatedir}/log/mysqld.log
|
/bin/touch %{_localstatedir}/log/mysqld.log
|
||||||
|
|
||||||
%preun server
|
%preun server
|
||||||
%systemd_preun mysqld.service
|
%systemd_preun %{daemon_name}
|
||||||
|
|
||||||
%postun libs -p /sbin/ldconfig
|
%postun libs -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun embedded -p /sbin/ldconfig
|
%postun embedded -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun server
|
%postun server
|
||||||
%systemd_postun_with_restart mysqld.service
|
%systemd_postun_with_restart %{daemon_name}
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc README.mysql-docs
|
%doc README.mysql-docs
|
||||||
@ -648,9 +661,11 @@ popd
|
|||||||
%{_datadir}/%{name}/mysql_test_data_timezone.sql
|
%{_datadir}/%{name}/mysql_test_data_timezone.sql
|
||||||
%{_datadir}/%{name}/my-*.cnf
|
%{_datadir}/%{name}/my-*.cnf
|
||||||
|
|
||||||
%{_unitdir}/%{basename:%SOURCE11}
|
%{_unitdir}/%{daemon_name}
|
||||||
%{_libexecdir}/%{basename:%SOURCE12}
|
%{_libexecdir}/mysqld-prepare-db-dir
|
||||||
%{_libexecdir}/%{basename:%SOURCE13}
|
%{_libexecdir}/mysqld-wait-ready
|
||||||
|
%{_libexecdir}/mysqld-check-socket
|
||||||
|
%{_libexecdir}/mysqld-scripts-common
|
||||||
|
|
||||||
%{_tmpfilesdir}/%{name}.conf
|
%{_tmpfilesdir}/%{name}.conf
|
||||||
%attr(0755,mysql,mysql) %dir %{_localstatedir}/run/mysqld
|
%attr(0755,mysql,mysql) %dir %{_localstatedir}/run/mysqld
|
||||||
@ -687,6 +702,9 @@ popd
|
|||||||
%{_mandir}/man1/mysql_client_test.1*
|
%{_mandir}/man1/mysql_client_test.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jul 22 2014 Honza Horak <hhorak@redhat.com> - 5.6.19-5
|
||||||
|
- Port scripts for systemd unit from MariaDB
|
||||||
|
|
||||||
* Mon Jul 21 2014 Honza Horak <hhorak@redhat.com> - 5.6.19-4
|
* Mon Jul 21 2014 Honza Horak <hhorak@redhat.com> - 5.6.19-4
|
||||||
- Port some latest changes from MariaDB package to sync those packages
|
- Port some latest changes from MariaDB package to sync those packages
|
||||||
- Error messages now provided by a separate package (thanks Alexander Barkov)
|
- Error messages now provided by a separate package (thanks Alexander Barkov)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
d /var/run/mysqld 0755 mysql mysql -
|
|
1
mysql.tmpfiles.d.in
Normal file
1
mysql.tmpfiles.d.in
Normal file
@ -0,0 +1 @@
|
|||||||
|
d /var/run/@RPM_PACKAGE_PREFIX@mysqld 0755 mysql mysql -
|
@ -1,82 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# This script creates the mysql data directory during first service start.
|
|
||||||
# In subsequent starts, it does nothing much.
|
|
||||||
|
|
||||||
# extract value of a MySQL option from config files
|
|
||||||
# Usage: get_mysql_option SECTION VARNAME DEFAULT
|
|
||||||
# result is returned in $result
|
|
||||||
# We use my_print_defaults which prints all options from multiple files,
|
|
||||||
# with the more specific ones later; hence take the last match.
|
|
||||||
get_mysql_option(){
|
|
||||||
result=`/usr/bin/my_print_defaults "$1" | sed -n "s/^--$2=//p" | tail -n 1`
|
|
||||||
if [ -z "$result" ]; then
|
|
||||||
# not found, use default
|
|
||||||
result="$3"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Defaults here had better match what mysqld_safe will default to
|
|
||||||
get_mysql_option mysqld datadir "/var/lib/mysql"
|
|
||||||
datadir="$result"
|
|
||||||
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
|
|
||||||
errlogfile="$result"
|
|
||||||
|
|
||||||
# Absorb configuration settings from the specified systemd service file,
|
|
||||||
# or the default "mysqld" service if not specified
|
|
||||||
SERVICE_NAME="$1"
|
|
||||||
if [ x"$SERVICE_NAME" = x ]
|
|
||||||
then
|
|
||||||
SERVICE_NAME=mysqld.service
|
|
||||||
fi
|
|
||||||
|
|
||||||
myuser=`systemctl show -p User "${SERVICE_NAME}" |
|
|
||||||
sed 's/^User=//'`
|
|
||||||
if [ x"$myuser" = x ]
|
|
||||||
then
|
|
||||||
myuser=mysql
|
|
||||||
fi
|
|
||||||
|
|
||||||
mygroup=`systemctl show -p Group "${SERVICE_NAME}" |
|
|
||||||
sed 's/^Group=//'`
|
|
||||||
if [ x"$mygroup" = x ]
|
|
||||||
then
|
|
||||||
mygroup=mysql
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set up the errlogfile with appropriate permissions
|
|
||||||
touch "$errlogfile"
|
|
||||||
chown "$myuser:$mygroup" "$errlogfile"
|
|
||||||
chmod 0640 "$errlogfile"
|
|
||||||
[ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
|
|
||||||
|
|
||||||
# Make the data directory
|
|
||||||
if [ ! -d "$datadir/mysql" ] ; then
|
|
||||||
# First, make sure $datadir is there with correct permissions
|
|
||||||
# (note: if it's not, and we're not root, this'll fail ...)
|
|
||||||
if [ ! -e "$datadir" -a ! -h "$datadir" ]
|
|
||||||
then
|
|
||||||
mkdir -p "$datadir" || exit 1
|
|
||||||
fi
|
|
||||||
chown "$myuser:$mygroup" "$datadir"
|
|
||||||
chmod 0755 "$datadir"
|
|
||||||
[ -x /sbin/restorecon ] && /sbin/restorecon "$datadir"
|
|
||||||
|
|
||||||
# Now create the database
|
|
||||||
echo "Initializing MySQL database"
|
|
||||||
/usr/bin/mysql_install_db --datadir="$datadir" --user="$myuser"
|
|
||||||
ret=$?
|
|
||||||
if [ $ret -ne 0 ] ; then
|
|
||||||
echo "Initialization of MySQL database failed." >&2
|
|
||||||
echo "Perhaps /etc/my.cnf is misconfigured." >&2
|
|
||||||
# Clean up any partially-created database files
|
|
||||||
if [ ! -e "$datadir/mysql/user.frm" ] ; then
|
|
||||||
rm -rf "$datadir"/*
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
||||||
fi
|
|
||||||
# In case we're running as root, make sure files are owned properly
|
|
||||||
chown -R "$myuser:$mygroup" "$datadir"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
87
mysqld-prepare-db-dir.sh
Normal file
87
mysqld-prepare-db-dir.sh
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This script creates the mysql data directory during first service start.
|
||||||
|
# In subsequent starts, it does nothing much.
|
||||||
|
|
||||||
|
source "`dirname ${BASH_SOURCE[0]}`/mariadb-scripts-common"
|
||||||
|
|
||||||
|
# If two args given first is user, second is group
|
||||||
|
# otherwise the arg is the systemd service file
|
||||||
|
if [ "$#" -eq 2 ]
|
||||||
|
then
|
||||||
|
myuser="$1"
|
||||||
|
mygroup="$2"
|
||||||
|
else
|
||||||
|
# Absorb configuration settings from the specified systemd service file,
|
||||||
|
# or the default "mariadb" service if not specified
|
||||||
|
SERVICE_NAME="$1"
|
||||||
|
if [ x"$SERVICE_NAME" = x ]
|
||||||
|
then
|
||||||
|
SERVICE_NAME=@DAEMON_NAME@.service
|
||||||
|
fi
|
||||||
|
|
||||||
|
myuser=`systemctl show -p User "${SERVICE_NAME}" |
|
||||||
|
sed 's/^User=//'`
|
||||||
|
if [ x"$myuser" = x ]
|
||||||
|
then
|
||||||
|
myuser=mysql
|
||||||
|
fi
|
||||||
|
|
||||||
|
mygroup=`systemctl show -p Group "${SERVICE_NAME}" |
|
||||||
|
sed 's/^Group=//'`
|
||||||
|
if [ x"$mygroup" = x ]
|
||||||
|
then
|
||||||
|
mygroup=mysql
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set up the errlogfile with appropriate permissions
|
||||||
|
touch "$errlogfile"
|
||||||
|
ret=$?
|
||||||
|
# Provide some advice if the log file cannot be touched
|
||||||
|
if [ $ret -ne 0 ] ; then
|
||||||
|
errlogdir=$(dirname $errlogfile)
|
||||||
|
if ! [ -d "$errlogdir" ] ; then
|
||||||
|
echo "The directory $errlogdir does not exist."
|
||||||
|
elif [ -f "$errlogfile" ] ; then
|
||||||
|
echo "The log file $errlogfile cannot be touched, please, fix its permissions."
|
||||||
|
else
|
||||||
|
echo "The log file $errlogfile could not be created."
|
||||||
|
fi
|
||||||
|
echo "The daemon will be run under $myuser:$mygroup"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
chown "$myuser:$mygroup" "$errlogfile"
|
||||||
|
chmod 0640 "$errlogfile"
|
||||||
|
[ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
|
||||||
|
|
||||||
|
# Make the data directory
|
||||||
|
if [ ! -d "$datadir/mysql" ] ; then
|
||||||
|
# First, make sure $datadir is there with correct permissions
|
||||||
|
# (note: if it's not, and we're not root, this'll fail ...)
|
||||||
|
if [ ! -e "$datadir" -a ! -h "$datadir" ]
|
||||||
|
then
|
||||||
|
mkdir -p "$datadir" || exit 1
|
||||||
|
fi
|
||||||
|
chown "$myuser:$mygroup" "$datadir"
|
||||||
|
chmod 0755 "$datadir"
|
||||||
|
[ -x /sbin/restorecon ] && /sbin/restorecon "$datadir"
|
||||||
|
|
||||||
|
# Now create the database
|
||||||
|
echo "Initializing MySQL database"
|
||||||
|
@bindir@/mysql_install_db --datadir="$datadir" --user="$myuser"
|
||||||
|
ret=$?
|
||||||
|
if [ $ret -ne 0 ] ; then
|
||||||
|
echo "Initialization of MySQL database failed." >&2
|
||||||
|
echo "Perhaps @sysconfdir@/my.cnf is misconfigured." >&2
|
||||||
|
# Clean up any partially-created database files
|
||||||
|
if [ ! -e "$datadir/mysql/user.frm" ] ; then
|
||||||
|
rm -rf "$datadir"/*
|
||||||
|
fi
|
||||||
|
exit $ret
|
||||||
|
fi
|
||||||
|
# In case we're running as root, make sure files are owned properly
|
||||||
|
chown -R "$myuser:$mygroup" "$datadir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
@ -1,55 +1,44 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
source "`dirname ${BASH_SOURCE[0]}`/mariadb-scripts-common"
|
||||||
|
|
||||||
# This script waits for mysqld to be ready to accept connections
|
# This script waits for mysqld to be ready to accept connections
|
||||||
# (which can be many seconds or even minutes after launch, if there's
|
# (which can be many seconds or even minutes after launch, if there's
|
||||||
# a lot of crash-recovery work to do).
|
# a lot of crash-recovery work to do).
|
||||||
# Running this as ExecStartPost is useful so that services declared as
|
# Running this as ExecStartPost is useful so that services declared as
|
||||||
# "After mysqld" won't be started until the database is really ready.
|
# "After mysqld" won't be started until the database is really ready.
|
||||||
|
|
||||||
|
if [ $# -ne 1 ] ; then
|
||||||
|
echo "You need to pass daemon pid as an argument for this script."
|
||||||
|
exit 20
|
||||||
|
fi
|
||||||
|
|
||||||
# Service file passes us the daemon's PID (actually, mysqld_safe's PID)
|
# Service file passes us the daemon's PID (actually, mysqld_safe's PID)
|
||||||
daemon_pid="$1"
|
daemon_pid="$1"
|
||||||
|
|
||||||
# extract value of a MySQL option from config files
|
|
||||||
# Usage: get_mysql_option SECTION VARNAME DEFAULT
|
|
||||||
# result is returned in $result
|
|
||||||
# We use my_print_defaults which prints all options from multiple files,
|
|
||||||
# with the more specific ones later; hence take the last match.
|
|
||||||
get_mysql_option(){
|
|
||||||
result=`/usr/bin/my_print_defaults "$1" | sed -n "s/^--$2=//p" | tail -n 1`
|
|
||||||
if [ -z "$result" ]; then
|
|
||||||
# not found, use default
|
|
||||||
result="$3"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Defaults here had better match what mysqld_safe will default to
|
|
||||||
get_mysql_option mysqld datadir "/var/lib/mysql"
|
|
||||||
datadir="$result"
|
|
||||||
get_mysql_option mysqld socket "/var/lib/mysql/mysql.sock"
|
|
||||||
socketfile="$result"
|
|
||||||
|
|
||||||
# Wait for the server to come up or for the mysqld process to disappear
|
# Wait for the server to come up or for the mysqld process to disappear
|
||||||
ret=0
|
ret=0
|
||||||
while /bin/true; do
|
while /bin/true; do
|
||||||
RESPONSE=`/usr/bin/mysqladmin --no-defaults --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
# Check process still exists
|
||||||
|
if ! [ -d "/proc/${daemon_pid}" ] ; then
|
||||||
|
ret=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
RESPONSE=`@bindir@/mysqladmin --no-defaults --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
||||||
mret=$?
|
mret=$?
|
||||||
if [ $mret -eq 0 ]; then
|
if [ $mret -eq 0 ] ; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
# exit codes 1, 11 (EXIT_CANNOT_CONNECT_TO_SERVICE) are expected,
|
# exit codes 1, 11 (EXIT_CANNOT_CONNECT_TO_SERVICE) are expected,
|
||||||
# anything else suggests a configuration error
|
# anything else suggests a configuration error
|
||||||
if [ $mret -ne 1 -a $mret -ne 11 ]; then
|
if [ $mret -ne 1 -a $mret -ne 11 ]; then
|
||||||
ret=1
|
echo "Cannot check for MySQL Daemon startup because of mysqladmin failure." >&2
|
||||||
|
ret=$mret
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
# "Access denied" also means the server is alive
|
# "Access denied" also means the server is alive
|
||||||
echo "$RESPONSE" | grep -q "Access denied for user" && break
|
echo "$RESPONSE" | grep -q "Access denied for user" && break
|
||||||
|
|
||||||
# Check process still exists
|
|
||||||
if ! /bin/kill -0 $daemon_pid 2>/dev/null; then
|
|
||||||
ret=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
@ -18,7 +18,7 @@
|
|||||||
# though /lib/... will still work.
|
# though /lib/... will still work.
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=MySQL database server
|
Description=MySQL @MAJOR_VERSION@.@MINOR_VERSION@ database server
|
||||||
After=syslog.target
|
After=syslog.target
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
@ -27,11 +27,12 @@ Type=simple
|
|||||||
User=mysql
|
User=mysql
|
||||||
Group=mysql
|
Group=mysql
|
||||||
|
|
||||||
ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n
|
ExecStartPre=@libexecdir@/mariadb-check-socket
|
||||||
|
ExecStartPre=@libexecdir@/mysqld-prepare-db-dir %n
|
||||||
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
|
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
|
||||||
# per bug #547485
|
# per bug #547485
|
||||||
ExecStart=/usr/bin/mysqld_safe --basedir=/usr
|
ExecStart=@bindir@/mysqld_safe --basedir=/usr
|
||||||
ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID
|
ExecStartPost=@libexecdir@/mysqld-wait-ready $MAINPID
|
||||||
|
|
||||||
# Give a reasonable amount of time for the server to start up/shut down
|
# Give a reasonable amount of time for the server to start up/shut down
|
||||||
TimeoutSec=300
|
TimeoutSec=300
|
Loading…
Reference in New Issue
Block a user