grknight 14/08/21 03:08:13 Added: conf.d-2.0 init.d-2.0 Removed: mysqlmanager.conf.d mysqlmanager.rc6 mysql-5.1.67-init.d-r1 mysql.rc6 mysql.conf.d Log: Verision bump to 2.0 adding a simple checkconfig and support for chroot (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key 67C78E1D)
Revision Changes Path 1.1 dev-db/mysql-init-scripts/files/conf.d-2.0 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/conf.d-2.0?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/conf.d-2.0?rev=1.1&content-type=text/plain Index: conf.d-2.0 =================================================================== # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-init-scripts/files/conf.d-2.0,v 1.1 2014/08/21 03:08:13 grknight Exp $ # If you want a non-stock location for the config file, uncomment or update # either of these as needed. If you do use it, you must make sure that none of # your socket, pidfile, datadir, logfiles, binary logs, relay logs or InnoDB # files collide with each other. MY_CNF="/etc/mysql/my.cnf" #MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}" #MY_CNF="${MY_CNF:-/etc/mysql/my-${SVCNAME/mysql.}.cnf}" # Place any additional arguments here that you might need # Common/useful options: # --skip-slave-start=1 - For bringing up replication initially # --server-id=NNN - Server ID for replication # --skip-networking - lock it down to UNIX sockets only MY_ARGS="" # This setting (in seconds) should be high enough to allow InnoDB to do a full # checkpoint recovery. 900 is the default used in the upstream RPM startup # scripts. 30 seconds should be sufficent if you just have a tiny <1GiB # database. After the core startup is done, we wait this long for the UNIX # socket to appear. STARTUP_TIMEOUT="900" # This is how long, in milliseconds, we wait for pidfile to be created, early # in the startup. STARTUP_EARLY_TIMEOUT="1000" # How long (in seconds) should we wait for shutdown? STOP_TIMEOUT=120 # integer [-20 .. 19 ] default 0 # change the priority of the server -20 (high) to 19 (low) # see nice(1) for description #NICE=0 # See start-stop-daemon(8) for possible settings #IONICE=2 # If defined, --verbose gets passed to S-S-D #DEBUG=1 # Depending on your usage of MySQL, you may also wish to start it after some # other services are up. Uncomment the lines below as needed. If these aren't # enough for you, we encourage you to file a bug, and help us understand how # you are using MySQL. # Do your MySQL ACLs refer to hostnames not in your /etc/hosts? # If so, you need DNS before you can accept connections. # Avoid dependency circular loops if you use MySQL to power a local DNS server. #rc_use="dns" #rc_after="dns" # Does your MySQL bind to an IP on an interface other than net.lo? # Alternatively you might wish to specify the exact interface here. #rc_use="net" #rc_after="net" # Do you store your MySQL files on a SAN or other network filesystem, that is # provided by the netmount init script? #rc_need="netmount" # Or from NFS? P.S. This is not a good idea in most cases, but does have some # valid usage cases, so we provide the option. #rc_need="nfsmount" # Should any one of the instances satisfy the requirement for MySQL coming up? # By default, we say no. [ "${SVCNAME}" != mysql ] && rc_provide="!mysql" # But uncomment this next instead if you think it should. #rc_provide="mysql" # The conditional above has a false-positive "failure" return value as a # side-effect, and since it's the last statement, without the next line, this # script returns failure. return 0 # vim: ft=gentoo-conf-d et ts=4 sw=4: 1.1 dev-db/mysql-init-scripts/files/init.d-2.0 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/init.d-2.0?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/init.d-2.0?rev=1.1&content-type=text/plain Index: init.d-2.0 =================================================================== #!/sbin/runscript # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-init-scripts/files/init.d-2.0,v 1.1 2014/08/21 03:08:13 grknight Exp $ extra_commands="checkconfig" depend() { use net.lo # localmount needed for $basedir need localmount } get_config() { my_print_defaults --config-file="$1" mysqld | sed -n -e "s/^--$2=//p" } mysql_svcname() { local ebextra= case "${SVCNAME}" in mysql*) ;; *) ebextra=" (mysql)" ;; esac echo "${SVCNAME}${ebextra}" } start() { # Check for old conf.d variables that mean migration was not yet done. set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' rc=$? # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. # It does have a use in testing, as it is possible to build a config file # that works with both the old and new init scripts simulateously. if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then eerror "You have not updated your conf.d for the new mysql-init-scripts-2 revamp." eerror "Not proceeding because it may be dangerous." return 1 fi # Check the config or die checkconfig || return 1 # Now we can startup ebegin "Starting $(mysql_svcname)" MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}" if [ ! -r "${MY_CNF}" ] ; then eerror "Cannot read the configuration file \`${MY_CNF}'" return 1 fi # tail -n1 is critical as these we only want the last instance of the option local basedir=$(get_config "${MY_CNF}" basedir | tail -n1) local datadir=$(get_config "${MY_CNF}" datadir | tail -n1) local pidfile=$(get_config "${MY_CNF}" pid-file | tail -n1) local socket=$(get_config "${MY_CNF}" socket | tail -n1) local chroot=$(get_config "${MY_CNF}" chroot | tail -n1) if [ -n "${chroot}" ] ; then socket="${chroot}/${socket}" pidfile="${chroot}/${pidfile}" fi if [ ! -d "${datadir}" ] ; then eerror "MySQL datadir \`${datadir}' is empty or invalid" eerror "Please check your config file \`${MY_CNF}'" return 1 fi if [ ! -d "${datadir}"/mysql ] ; then # find which package is installed to report an error local EROOT=$(portageq envvar EROOT) local DBPKG_P=$(portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql)) if [[ -z ${DBPKG_P} ]] ; then eerror "You don't appear to have a server package installed yet." else eerror "You don't appear to have the mysql database installed yet." eerror "Please run \`emerge --config =${DBPKG_P}\` to have this done..." fi return 1 fi local piddir="${pidfile%/*}" checkpath -d --owner mysql:mysql --mode 0755 "$piddir" rc=$? if [ $rc -ne 0 ]; then eerror "Directory $piddir for pidfile does not exist and cannot be created" return 1 fi local startup_timeout=${STARTUP_TIMEOUT:-900} local startup_early_timeout=${STARTUP_EARLY_TIMEOUT:-1000} local tmpnice="${NICE:+"--nicelevel "}${NICE}" local tmpionice="${IONICE:+"--ionice "}${IONICE}" start-stop-daemon \ ${DEBUG:+"--verbose"} \ --start \ --exec "${basedir}"/sbin/mysqld \ --pidfile "${pidfile}" \ --background \ --wait ${startup_early_timeout} \ ${tmpnice} \ ${tmpionice} \ -- --defaults-file="${MY_CNF}" ${MY_ARGS} local ret=$? if [ ${ret} -ne 0 ] ; then eend ${ret} return ${ret} fi ewaitfile ${startup_timeout} "${socket}" eend $? || return 1 save_options pidfile "${pidfile}" save_options basedir "${basedir}" } stop() { ebegin "Stopping $(mysql_svcname)" local pidfile="$(get_options pidfile)" local basedir="$(get_options basedir)" local stop_timeout=${STOP_TIMEOUT:-120} start-stop-daemon \ ${DEBUG:+"--verbose"} \ --stop \ --exec "${basedir}"/sbin/mysqld \ --pidfile "${pidfile}" \ --retry ${stop_timeout} eend $? } checkconfig() { local basedir=$(get_config "${MY_CNF}" basedir | tail -n1) ebegin "Checking mysqld configuration" # Suppress output to check the return value "${basedir}"/sbin/mysqld --help --verbose &> /dev/null # If the above command does not return 0, # then there is an error to echo to the user if [ $? -ne 0 ] ; then "${basedir}"/sbin/mysqld --help --verbose > /dev/null fi eend $? "MySQL config check failed" } # vim: filetype=gentoo-init-d sw=2 ts=2 sts=2 noet: