0

I have checked for other occurences of my.cnf and ive found only one occurence /etc/my.cnf.

I then went ahead to fix in my values eg query_cache_size etc.

after saving and literally rebooting, the values in my.cnf have not been applied. im using centos 5.6, LAMP on apache 2, mysql 5.0.77

any help?

here is the content of /etc/init.d/mysyld

#!/bin/bash
#
# mysqld    This shell script takes care of starting and stopping
#       the MySQL subsystem (mysqld).
#
# chkconfig: - 64 36
# description:  MySQL database server.
# processname: mysqld
# config: /etc/my.cnf
# pidfile: /var/run/mysqld/mysqld.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network


prog="MySQL"

# 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
}

get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"

start(){
    touch "$errlogfile"
    chown mysql:mysql "$errlogfile" 
    chmod 0640 "$errlogfile"
    [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
    if [ ! -d "$datadir/mysql" ] ; then
        action $"Initializing MySQL database: " /usr/bin/mysql_install_db --datadir="$datadir" --user=mysql
        ret=$?
        chown -R mysql:mysql "$datadir"
        if [ $ret -ne 0 ] ; then
        return $ret
        fi
    fi
    chown mysql:mysql "$datadir"
    chmod 0755 "$datadir"
    # Pass all the options determined above, to ensure consistent behavior.
    # In many cases mysqld_safe would arrive at the same conclusions anyway
    # but we need to be sure.
    /usr/bin/mysqld_safe   --datadir="$datadir" --socket="$socketfile" \
        --log-error="$errlogfile" --pid-file="$mypidfile" \
        --user=mysql >/dev/null 2>&1 &
    ret=$?
    # Spin for a maximum of N seconds waiting for the server to come up.
    # Rather than assuming we know a valid username, accept an "access
    # denied" response as meaning the server is functioning.
    if [ $ret -eq 0 ]; then
        STARTTIMEOUT=30
        while [ $STARTTIMEOUT -gt 0 ]; do
        RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1` && break
        echo "$RESPONSE" | grep -q "Access denied for user" && break
        sleep 1
        let STARTTIMEOUT=${STARTTIMEOUT}-1
        done
        if [ $STARTTIMEOUT -eq 0 ]; then
                    echo "Timeout error occurred trying to start MySQL Daemon."
                    action $"Starting $prog: " /bin/false
                    ret=1
            else
                    action $"Starting $prog: " /bin/true
            fi
    else
            action $"Starting $prog: " /bin/false
    fi
    [ $ret -eq 0 ] && touch /var/lock/subsys/mysqld
    return $ret
}

stop(){
        MYSQLPID=`cat "$mypidfile"  2>/dev/null `
        if [ -n "$MYSQLPID" ]; then
            /bin/kill "$MYSQLPID" >/dev/null 2>&1
            ret=$?
            if [ $ret -eq 0 ]; then
                STOPTIMEOUT=60
                while [ $STOPTIMEOUT -gt 0 ]; do
                    /bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
                    sleep 1
                    let STOPTIMEOUT=${STOPTIMEOUT}-1
                done
                if [ $STOPTIMEOUT -eq 0 ]; then
                    echo "Timeout error occurred trying to stop MySQL Daemon."
                    ret=1
                    action $"Stopping $prog: " /bin/false
                else
                    rm -f /var/lock/subsys/mysqld
                    rm -f "$socketfile"
                    action $"Stopping $prog: " /bin/true
                fi
            else
                action $"Stopping $prog: " /bin/false
            fi
        else
            ret=1
            action $"Stopping $prog: " /bin/false
        fi
        return $ret
}

restart(){
    stop
    start
}

condrestart(){
    [ -e /var/lock/subsys/mysqld ] && restart || :
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status mysqld
    ;;
  restart)
    restart
    ;;
  condrestart)
    condrestart
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|condrestart|restart}"
    exit 1
esac

exit $?

2 Answers 2

4

i fixed this error. it was a permission issue. apparently, my.cnf needed to be chowned to mysql for it to be read. just changed it using

chown mysql:mysql /etc/my.cnf
chmod 0640 /etc/my.cnf
1

One thing to check is the init.d script for MySQL (/etc/init.d/mysqld) and check which config file (if any) is specified to load.

Another possible means of test is try running a MySQL instance outside of the startup scripts, something like mysqld_safe --datadir=/var/lib/mysql --defaultsfile=/etc/my.cnf and check if the settings have taken effect.

1
  • just edited and pasted my /etc/init.d/mysqld ... please advise
    – Sir Lojik
    Jul 24, 2011 at 22:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .