LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 04-30-2007, 02:02 PM   #1
dfw123
Member
 
Registered: Apr 2007
Posts: 45

Rep: Reputation: 15
can not "service mysqld start"


Hello!

I have mysql5.0 on fedora6. I am root user and can use "mysqld_safe --user=mysql & "to start mysql but can not use "service mysqld start", I can "service mysqld stop", I don't even use InnoDB, it will has error in error log

070425 mysqld started
070425 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
070425 mysqld ended

I check /var/lib/mysql and ibdata1 both are mysql user and mysql group, mysql is installed by add/remove.

[root@localhost ~]# rpm -aq *mys*
mysql-server-5.0.27-1.fc6
libdbi-dbd-mysql-0.8.1a-1.2.2
php-mysql-5.1.6-3.5.fc6
mysql-5.0.27-1.fc6
mysql-connector-odbc-3.51.12-2.2

I can not start mysql by "service mysqld start", the error is show in first post of the error log and following error

Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]

But I can stop mysql by "service mysqld stop"

I can start mysql by "mysqld_safe --user=mysql &"


any help?
 
Old 05-01-2007, 08:11 PM   #2
twantrd
Senior Member
 
Registered: Nov 2002
Location: CA
Distribution: redhat 7.3
Posts: 1,440

Rep: Reputation: 52
You probably need to modify your startup script. Can you paste it here for us to see?

-twantrd
 
Old 05-02-2007, 01:28 PM   #3
dfw123
Member
 
Registered: Apr 2007
Posts: 45

Original Poster
Rep: Reputation: 15
sure.

Code:
#!/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 /etc/my.cnf
# Usage: get_mysql_option FILE VARNAME DEFAULT
# result is returned in $result
# Ugly as this is, it knows nothing of option file sections ...
get_mysql_option(){
        result=`sed -n "s/^[ \t]*$2[ \t]*=[ \t]*//p" "$1" 2>/dev/null | tail -n 1`
        if [ -z "$result" ]; then
            # not found, use default
            result="$3"
        else
            # found, still have to deal with quoting and end-of-line comments
            dequoted=`echo "$result" | sed "s/^'\([^']*\)'.*$/\1/"`
            if [ x"$dequoted" != x"$result" ]; then
                result="$dequoted"
            else
                dequoted=`echo "$result" | sed 's/^"\([^"]*\)".*$/\1/'`
                if [ x"$dequoted" != x"$result" ]; then
                    result="$dequoted"
                else
                    result=`echo "$result" | sed 's/^\([^ \t#]*\).*$/\1/'`
                fi
            fi
        fi
}

get_mysql_option /etc/my.cnf datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option /etc/my.cnf socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option /etc/my.cnf log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option /etc/my.cnf 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
            ret=$?
            chown -R mysql:mysql "$datadir"
            if [ $ret -ne 0 ] ; then
                return $ret
            fi
        fi
        chown -R mysql:mysql "$datadir"
        chmod 0755 "$datadir"
        # The reason for explicitly specifying --pid-file is that there may
        # be no such entry in my.cnf, and the default behavior will be to not
        # create it at all.  Likewise, we specify --log-error in case there
        # was not an entry in my.cnf.
        /usr/bin/mysqld_safe  --defaults-file=/etc/my.cnf --pid-file="$mypidfile" --log-error="$errlogfile" >/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 -uUNKNOWN_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 $?
any help?
 
Old 05-02-2007, 04:07 PM   #4
twantrd
Senior Member
 
Registered: Nov 2002
Location: CA
Distribution: redhat 7.3
Posts: 1,440

Rep: Reputation: 52
Code:
/usr/bin/mysqld_safe  --defaults-file=/etc/my.cnf --pid-file="$mypidfile" --log-error="$errlogfile" >/dev/null 2>&1 &
        ret=$?
In the "start" statement, what happens when you modify the command to be this:

Code:
/usr/bin/mysqld_safe --user=mysql --defaults-file=/etc/my.cnf --pid-file="$mypidfile" --log-error="$errlogfile" >/dev/null 2>&1 &
        ret=$?
-twantrd
 
Old 05-02-2007, 06:46 PM   #5
dfw123
Member
 
Registered: Apr 2007
Posts: 45

Original Poster
Rep: Reputation: 15
After I change the script still the same problem,

[root@localhost init.d]# service mysqld restart
Stopping MySQL: [ OK ]
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]
[root@localhost init.d]# service mysqld start
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]

mysqld.log:

070502 08:32:12 mysqld ended

070502 08:32:13 mysqld started
070502 8:32:13 [ERROR] /usr/libexec/mysqld: unknown variable 'defaults-file=/etc/my.cnf'

070502 08:32:13 mysqld ended

070502 08:34:21 mysqld started
070502 8:34:21 [ERROR] /usr/libexec/mysqld: unknown variable 'defaults-file=/etc/my.cnf'

070502 08:34:21 mysqld ended

Last edited by dfw123; 05-02-2007 at 06:52 PM.
 
Old 05-02-2007, 07:13 PM   #6
twantrd
Senior Member
 
Registered: Nov 2002
Location: CA
Distribution: redhat 7.3
Posts: 1,440

Rep: Reputation: 52
Take out the flag "defaults-file=/etc/my.cnf" in the script. By default, startup of mysql will look for an existance of that file anyhow.

-twantrd
 
Old 05-02-2007, 07:22 PM   #7
dfw123
Member
 
Registered: Apr 2007
Posts: 45

Original Poster
Rep: Reputation: 15
I took off that still same problem,

[root@localhost etc]# service mysqld start
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]


log:
070502 09:09:44 mysqld ended

070502 09:09:45 mysqld started
070502 9:09:45 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
070502 09:09:45 mysqld ended
 
Old 05-03-2007, 01:29 AM   #8
twantrd
Senior Member
 
Registered: Nov 2002
Location: CA
Distribution: redhat 7.3
Posts: 1,440

Rep: Reputation: 52
Have you seen the posts on this link?

http://forums.macosxhints.com/archiv...p/t-11466.html

The user appears to have the same problem as you.

-twantrd
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Logs filling up with "smbd/service.c:make_connection" - "couldn't find service" DumbTerminal Linux - Networking 14 07-16-2007 07:33 AM
Reboot and "/usr/sbin/mysqld: Can't open file: 'my_table.MYI'" message guarriman Linux - Software 4 08-08-2006 04:35 PM
"mysqld ended" when trying to start mysql daemon guarriman Linux - General 1 01-19-2005 08:35 AM
I can't "service squid start" , and chkconfig squid on not working Niceman2005 Linux - Software 0 11-10-2004 09:18 PM
Error: "mysqld dead but subsys locked" mikeshn Linux - Software 1 01-01-2004 06:18 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 06:43 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration