[dev-db/google-mysql] systemd unit moved to mysql-init-scripts
This commit is contained in:
@@ -1 +0,0 @@
|
||||
d /var/run/mysqld 0755 mysql mysql -
|
||||
@@ -1,83 +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/mysql/mysql.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/share/mysql/scripts/mysql_install_db \
|
||||
--datadir="$datadir" --user="$myuser" --basedir="/usr"
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ] ; then
|
||||
echo "Initialization of MySQL database failed." >&2
|
||||
echo "Perhaps /etc/mysql/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,56 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script waits for mysqld to be ready to accept connections
|
||||
# (which can be many seconds or even minutes after launch, if there's
|
||||
# a lot of crash-recovery work to do).
|
||||
# Running this as ExecStartPost is useful so that services declared as
|
||||
# "After mysqld" won't be started until the database is really ready.
|
||||
|
||||
# Service file passes us the daemon's PID (actually, mysqld_safe's PID)
|
||||
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
|
||||
ret=0
|
||||
while /bin/true; do
|
||||
RESPONSE=`/usr/bin/mysqladmin --no-defaults --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
||||
mret=$?
|
||||
if [ $mret -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
# exit codes 1, 11 (EXIT_CANNOT_CONNECT_TO_SERVICE) are expected,
|
||||
# anything else suggests a configuration error
|
||||
if [ $mret -ne 1 -a $mret -ne 11 ]; then
|
||||
ret=1
|
||||
break
|
||||
fi
|
||||
# "Access denied" also means the server is alive
|
||||
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
|
||||
done
|
||||
|
||||
exit $ret
|
||||
@@ -1,43 +0,0 @@
|
||||
# It's not recommended to modify this file in-place, because it will be
|
||||
# overwritten during package upgrades. If you want to customize, the
|
||||
# best way is to create a file "/etc/systemd/system/mysqld.service",
|
||||
# containing
|
||||
# .include /lib/systemd/system/mysqld.service
|
||||
# ...make your changes here...
|
||||
# For more info about custom unit files, see
|
||||
# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F
|
||||
|
||||
# For example, if you want to increase mysql's open-files-limit to 10000,
|
||||
# you need to increase systemd's LimitNOFILE setting, so create a file named
|
||||
# "/etc/systemd/system/mysqld.service" containing:
|
||||
# .include /lib/systemd/system/mysqld.service
|
||||
# [Service]
|
||||
# LimitNOFILE=10000
|
||||
|
||||
# Note: in F-17 and beyond, /usr/lib/... is recommended in the .include line
|
||||
# though /lib/... will still work.
|
||||
|
||||
[Unit]
|
||||
Description=MySQL database server
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=mysql
|
||||
Group=mysql
|
||||
|
||||
ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n
|
||||
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
|
||||
# per bug #547485
|
||||
ExecStart=/usr/bin/mysqld_safe --basedir=/usr
|
||||
ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID
|
||||
|
||||
# Give a reasonable amount of time for the server to start up/shut down
|
||||
TimeoutSec=300
|
||||
|
||||
# Place temp files in a secure directory, not /tmp
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -7,7 +7,7 @@ EAPI="4"
|
||||
# Build type
|
||||
BUILD="autotools"
|
||||
|
||||
inherit autotools eutils flag-o-matic toolchain-funcs mysql-v2 systemd
|
||||
inherit autotools eutils flag-o-matic toolchain-funcs mysql-v2
|
||||
|
||||
SRC_URI="mirror://sabayon/dev-db/${P}.tar.gz"
|
||||
|
||||
@@ -65,17 +65,6 @@ src_prepare() {
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mysql-v2_src_install
|
||||
|
||||
# systemd unit installation
|
||||
exeinto /usr/libexec
|
||||
doexe "${FILESDIR}"/{mysqld-prepare-db-dir,mysqld-wait-ready}
|
||||
|
||||
systemd_dounit "${FILESDIR}/mysqld.service"
|
||||
systemd_dotmpfilesd "${FILESDIR}/mysql.conf"
|
||||
}
|
||||
|
||||
# Official test instructions:
|
||||
# USE='berkdb -cluster -embedded extraengine perl ssl community' \
|
||||
# FEATURES='test userpriv -usersandbox' \
|
||||
|
||||
Reference in New Issue
Block a user