THIS POST IS MORE LEGIBLE ON THE FORUMS:
http://forums.gentoo.org/viewtopic-p-2594528.html#2594528
/etc/init.d/mysql is acting very strangely on a fresh mysql (4.0.25-r2). I've
tried to install the stable version as well, but I get the same nonsense.
Floow along and you'll see what I mean.
No previous instances of mysql are running:
[code]
localhost mysql # ps -A | grep sql
localhost mysql #
[/code]
When I run the mysql init script I get a failed symbol, with only a reference
to /etc/mysql/my.cnf; this isn't very useful debugging info...
[code]
localhost mysql # /etc/init.d/mysql start
* Caching service dependencies ...
[ ok ]
* Starting mysqld (/etc/mysql/my.cnf) ...
[ !! ]
localhost mysql #
[/code]
So, I go check out the logs; again, not very much useful debugging info.
[code]
localhost mysql # pwd
/var/log/mysql
localhost mysql # ls
mysql.err mysqld.err
localhost mysql # cat mysql.err
050722 19:41:24 mysqld started
localhost mysql # cat mysqld.err
050722 19:41:24 InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 43892
InnoDB: Doing recovery: scanned up to log sequence number 0 43892
050722 19:41:24 InnoDB: Flushing modified pages from the buffer pool...
050722 19:41:24 InnoDB: Started
/usr/sbin/mysqld: ready for connections.
Version: '4.0.25' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Gentoo
Linux mysql-4.0.25-r2
localhost mysql #
[/code]
There's probably no debugging useful debugging info because mysql started just
fine :roll:
[code]
localhost mysql # ps -A | grep mysql
909 ? 00:00:00 mysqld_safe
948 ? 00:00:00 mysqld
localhost mysql #
[/code]
I can connect to mysql without issue as well:
[code]
localhost mysql # mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.0.25
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> quit
Bye
localhost mysql #
[/code]
I might be inclined to not care and just continue development; but....
[code]
localhost mysql # /etc/init.d/mysql stop
* ERROR: "mysql" has not yet been started.
localhost mysql #
[/code]
The fact that I can't use the runscript to stop the proess gets to me... I'm
itching to fix this.
Here is the /etc/mysql/my.cnf file with comments grep'd out:
[code]
localhost mysql # grep -v '^#' /etc/mysql/my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[safe_mysqld]
err-log = /var/log/mysql/mysql.err
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
log-error = /var/log/mysql/mysqld.err
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-locking
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
bind-address = 127.0.0.1
port = 3306
set-variable = innodb_buffer_pool_size=32M
set-variable = innodb_additional_mem_pool_size=1M
innodb_data_home_dir = /var/lib/mysql/
innodb_log_arch_dir = /var/lib/mysql/
innodb_log_group_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
set-variable = innodb_log_file_size=8M
set-variable = innodb_log_buffer_size=1M
set-variable = innodb_log_files_in_group=2
innodb_flush_log_at_trx_commit=1
[mysqldump]
quick
set-variable = max_allowed_packet=1M
[mysql]
[isamchk]
set-variable = key_buffer=16M
localhost mysql #
[/code]
Here is the run script in question. Also, before installing mysql, I made sure
that there was no previous /etc/init.d/mysql file; so, this is surly the
runscript created by the fresh mysql-4.0.25-r2 emerge.
[code]localhost mysql # cat /etc/init.d/mysql
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysql-4.0.24-r2.rc6,v
1.1 2005/05/17 09:08:46 robbat2 Exp $
depend() {
use dns net
}
getconfig() {
MY_CNF=${MY_CNF=/etc/mysql/my.cnf}
if [ ! -f ${MY_CNF} ]; then
eerror "No ${MY_CNF} file exists! Using automatic defaults!"
fi
#dir=`my_print_defaults mysqld | grep -- '^--datadir' | tail -n1 | sed
-e 's|^--datadir=||'`
#dir=`my_print_defaults mysqld | sed -ne '/datadir/s|^--datadir=||p' |
tail -n1`
local mysqld_cnf="`my_print_defaults --config-file=${MY_CNF} mysqld`"
datadir=`echo "${mysqld_cnf}" | sed -ne '/datadir/s|^--datadir=||p' |
tail -n1`
pidfile=`echo "${mysqld_cnf}" | sed -ne '/pid-file/s|^--pid-file=||p'
| tail -n1`
basedir=`echo "${mysqld_cnf}" | sed -ne '/basedir/s|^--basedir=||p' |
tail -n1`
socket=`echo "${mysqld_cnf}" | sed -ne '/socket/s|^--socket=||p' |
tail -n1`
# push these out to the script
export MY_CNF
export pidfile
export datadir
export basedir
export socket
}
checkconfig() {
getconfig
if [ -z "${datadir}" ]; then
eerror "Your mysql doesn't have any datadir setting, default
or specific"
eerror "Please check your my.cnf : ${MY_CNF}"
return 1
fi
if [ ! -d "$datadir/mysql" ]; then
eerror "You don't appear to have the mysql database installed
yet."
eerror "Please run /usr/bin/mysql_install_db to have this
done..."
return 1
fi
}
start() {
local retstatus=1
local maxtry=5
getconfig
checkconfig || return 1
ebegin "Starting mysqld (${MY_CNF})"
start-stop-daemon --start --quiet --background \
--exec "${basedir}/bin/mysqld_safe" \
-- --defaults-file=${MY_CNF} >/dev/null 2>&1
retstatus=$?
while ! [[ -S "${socket}" || "${maxtry}" -lt "1" || "${retstatus}" -gt
"0" ]] ; do
maxtry=$(($maxtry-1))
echo -n "."
sleep 1
done
! [[ -S "${socket}" ]] && eerror "MySQL NOT started, proceding anyway"
eend $retstatus
}
stop () {
getconfig
ebegin "Stopping mysqld (${MY_CNF})"
start-stop-daemon --stop --retry 5 --quiet --pidfile=${pidfile}
eend $?
}
localhost mysql # [/code]
I really hope that someone can help me fix this.
--
[email protected] mailing list