Server IP : 172.67.216.182 / Your IP : 162.158.163.252 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/packaging/rpm-sles/ |
Upload File : |
#! /bin/bash # # Copyright (c) 2013, 2023, Oracle and/or its affiliates. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2.0, # as published by the Free Software Foundation. # # This program is also distributed with certain software (including # but not limited to OpenSSL) that is licensed under separate terms, # as designated in a particular file or component or in included license # documentation. The authors of MySQL hereby grant you an additional # permission to link the program and your derivative works with the # separately licensed software that they have included with MySQL. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License, version 2.0, for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # MySQL Database start/stop script # chkconfig: - 64 36 # description: MySQL Database # processname: mysqld # config: /etc/my.cnf # pidfile: /var/run/mysql/mysqld.pid # Comments to support LSB init script conventions ### BEGIN INIT INFO # Provides: mysql # Required-Start: $network $remote_fs # Required-Stop: $network $remote_fs # Default-Start: 3 5 # Default-Stop: 0 1 6 # Short-Description: MySQL Database # Description: MySQL Database ### END INIT INFO # # https://en.opensuse.org/openSUSE:Packaging_init_scripts#Exit_Status_Codes # [ -e /etc/rc.status ] && . /etc/rc.status rc_reset STARTTIMEOUT=180 STOPTIMEOUT=600 PROG=/usr/bin/mysqld_safe [ -e /etc/sysconfig/mysql ] && . /etc/sysconfig/mysql # Lock directory lockfile=/var/lock/subsys/mysql # Support for extra options passed to mysqld command=$1 && shift extra_opts="$@" get_option () { local option=$1 local default=$2 shift 2 ret=$(/usr/bin/my_print_defaults "$@" | sed -n "s/^--${option}=//p" | tail -n 1) [ -z $ret ] && ret=${default} echo $ret } datadir=$(get_option datadir "/var/lib/mysql" mysqld) socket=$(get_option socket "$datadir/mysql.sock" mysqld) pidfile=$(get_option pid-file "/var/run/mysql/mysqld.pid" mysqld mysqld_safe) install_validate_password_sql_file () { local initfile initfile="$(mktemp /tmp/install-validate-password-plugin.XXXXXX.sql)" chmod a+r "$initfile" echo "SET @@SESSION.SQL_LOG_BIN=0;" > "$initfile" echo "INSERT INTO mysql.plugin (name, dl) VALUES ('validate_password', 'validate_password.so');" >> $initfile echo $initfile } install_db () { # Note: something different than datadir=/var/lib/mysql requires # SELinux policy changes (in enforcing mode) datadir=$(get_option datadir "/var/lib/mysql" mysqld) logfile=$(get_option log-error "/var/log/mysql/mysqld.log" mysqld mysqld_safe) # Restore log, dir, perms and SELinux contexts if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then install -d -m 0751 -omysql -gmysql "$datadir" || return 1 fi if [ ! -e "$logfile" -a ! -h "$logfile" -a "x$(dirname "$logfile")" = "x/var/log/mysql" ]; then install /dev/null -omysql -gmysql "$logfile" || return 1 fi if [ -x /usr/sbin/restorecon ]; then /usr/sbin/restorecon "$datadir" /usr/sbin/restorecon "$logfile" fi # If special mysql dir is in place, skip db install [ -d "$datadir/mysql" ] && return 0 # Create initial db and install validate password plugin initfile="$(install_validate_password_sql_file)" /usr/sbin/mysqld --initialize --datadir="$datadir" --user=mysql --init-file="$initfile" ret=$? rm -f "$initfile" # Generate certs if neded if [ -x /usr/bin/mysql_ssl_rsa_setup -a ! -e "${datadir}/server-key.pem" ] ; then /usr/bin/mysql_ssl_rsa_setup --datadir="$datadir" --uid=mysql >/dev/null 2>&1 fi return $ret } # Wait for ping to answer to signal startup completed, # might take a while in case of e.g. crash recovery pinger () { mysqld_safe_pid=$1 timer=$STARTTIMEOUT ret=0 while [ $timer -gt 0 ]; do sleep 1 mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 && break timer=$(expr $timer - 1) # Check if mysqld_safe is still alive, if not there is no hope if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then ret=1 break fi done # Did we timeout? if [ $timer = 0 ]; then echo "MySQL Database start up timeout after ${STARTTIMEOUT}s" ret=1 fi return $ret } # Check if mysqld is running chk_running () { ret=0 if [ -e "$pidfile" ]; then pid=$(cat "$pidfile") || ret=4 else ret=7 fi # Check if $pid is a mysqld pid if [ $ret -eq 0 ]; then [ -L "/proc/$pid/exe" ] || ret=7 fi if [ $ret -eq 0 ]; then exec=$(readlink "/proc/$pid/exe") || ret=7 fi if [ $ret -eq 0 ]; then [ "x$(basename $exec)" = "xmysqld" ] || ret=7 fi return $ret } start () { if chk_running && mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 ; then echo -n "Starting service MySQL:" rc_reset ; rc_status -v ; rc_exit fi if ! install_db; then echo -n "MySQL Database could not initialize data directory:" rc_failed 6 ; rc_status -v ; rc_exit fi $PROG --basedir=/usr --datadir="$datadir" --pid-file="$pidfile" $extra_opts >/dev/null & if pinger $! ; then echo -n "Starting service MySQL:" touch $lockfile rc_reset else echo -n "Failed to start service MySQL:" rc_failed 3 fi rc_status -v } stop () { chk_running ret=$? if [ $ret -ne 0 ]; then echo -n "Shutting down service MySQL:" rc_reset ; rc_status -v ; return 0 fi # chk_running has verified this works pid=$(cat "$pidfile") # We use a signal to avoid having to know the root password # Send single kill command and then wait if su - mysql -s /bin/bash -c "kill $pid" >/dev/null 2>&1; then timer=$STOPTIMEOUT while [ $timer -gt 0 ]; do kill -0 $pid >/dev/null 2>&1 || break sleep 1 timer=$(expr $timer - 1) done else echo -n "Shutting down service MySQL:" rc_failed 4 ; rc_status -v ; rc_exit fi if [ $timer -eq 0 ]; then echo -n "Failed to stop service MySQL:" rc_failed 1 else rm -f $lockfile rm -f "$socketfile" echo -n "Shutting down service MySQL:" rc_reset fi rc_status -v } restart () { stop start } reload () { ret=0 if chk_running && mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 ; then pid=$(cat "$pidfile") su - mysql -s /bin/bash -c "kill -HUP $pid" >/dev/null 2>&1 echo -n "Reloading service MySQL:" rc_reset else echo -n "Reloading of service MySQL failed:" rc_failed 7 fi rc_status -v } condrestart () { if chk_running && mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 ; then restart fi } status () { echo -n "Checking for service MySQL:" checkproc mysqld rc_status -v } case "$command" in start ) start ;; stop ) stop ;; restart) restart ;; status ) status ;; condrestart ) condrestart ;; reload|force-reload) reload ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status|reload|force-reload}"; exit 1 ;; esac rc_exit