mysqld won't start anymore (keeps restarting)

Mannekino

Verified User
Joined
Sep 1, 2009
Messages
9
Hello,

I have a rather urgent problem with my DirectAdmin server. The service mysqld won't start anymore. I'm running on a clean installed Debian 5.02 system.

Here is the output of the .err file located in /usr/local/mysql/data/.

Code:
090909  2:27:01  InnoDB: Starting shutdown...
090909  2:27:02  InnoDB: Shutdown completed; log sequence number 0 147597
090909  2:27:02 [Warning] Forcing shutdown of 1 plugins
[b]090909  2:27:02 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete[/b]
090909 02:27:02 mysqld_safe mysqld from pid file /usr/local/mysql/data/s010.pid ended
090909 02:27:11 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
090909  2:27:11  InnoDB: Started; log sequence number 0 147597
090909  2:27:11 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-bdb'
090909  2:27:11 [ERROR] Aborting

At first I got the error listed in the code box below, but I made a slight change to the my.cnf located in /etc/mysql/. I have change the language setting to /usr/share/mysql/english. The difference are highlighted.

Code:
090909  1:38:12  InnoDB: Starting shutdown...
090909  1:38:13  InnoDB: Shutdown completed; log sequence number 0 147597
090909  1:38:13 [Warning] Forcing shutdown of 1 plugins
[b]090909  1:38:13 [Note][/b]
090909 01:38:13 mysqld_safe mysqld from pid file /usr/local/mysql/data/s010.pid ended
090909 01:39:02 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
[b]090909  1:39:02 [ERROR] Can't find messagefile '/usr/share/mysql/english/errmsg.sys'[/b]
090909  1:39:02  InnoDB: Started; log sequence number 0 147597
090909  1:39:02 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-bdb'
090909  1:39:02 [ERROR] Aborting

Here is the full contents of the my.cnf file.

Code:
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
#
# * Fine Tuning
#
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover          = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
#log            = /var/log/mysql/mysql.log
#
# Error logging goes to syslog. This is a Debian improvement :)
#
# Here you can see queries with especially long duration
#log_slow_queries       = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
#log_bin                        = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
#binlog_do_db           = include_database_name
#binlog_ignore_db       = include_database_name
#
# * BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer              = 16M

#
# * NDB Cluster
#
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
#
# The following configuration is read by the NDB Data Nodes (ndbd processes)
# not from the NDB Management Nodes (ndb_mgmd processes).
#
# [MYSQL_CLUSTER]
# ndb-connectstring=127.0.0.1


#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/

I don't know the cause of this error. I did install two packages for getting HLStatsX to work.

The installation guidelines of HLStatsX state that I need Geo::IP::PurePerl and DBD::mysql Perl modules.

In the FAQ on the HLStatsX forums it stated that I could install the the Geo::IP::PurePerl module with the following command:

Code:
perl -MCPAN -e 'install Geo::IP::PurePerl'

It did not state how to install the DBD::mysql module. I logically concluded that the following command would work for this module.

Code:
perl -MCPAN -e 'install DBD::mysql'

However, I was mistaken. It failed to install and gave a bunch of errors. The Geo::IP::PurePerl installed perfectly.

And then did some further research and eventually found that I must install the DBD::mysql with the following command:

Code:
sudo apt-get install libdbd-mysql-perl

I did so, and it also installed perfectly. Afterwards I could run HLStatsX without any errors.

Otherwise I did not make any changes to the system and the default installation of Debian and DirectAdmin. The output of sudo dpkg -l | grep mysql is:

Code:
ii  libdbd-mysql-perl                 4.007-1                  A Perl5 database interface to the MySQL database
ii  libmysqlclient15off               5.0.51a-24+lenny2        MySQL database client library
ii  mysql-common                      5.0.51a-24+lenny2        MySQL database common files

Could the botched installation of perl -MCPAN -e 'install DBD::mysql' command be the cause of my problem? Can anybody help me to solve this? I'm at a loss here.

Kind regards,

Mannekino
 
Last edited:
Quite simple; your MySQL distribution isn't compiled with BerkeleyDB libraries therefore doesn't know about "--skip-bdb".

Just comment "skip-bdb" in your config file.
 
I contacted support and they instructed me to delete in the my.cnf file in /etc/mysql/ since the contents of that file did not match any of the DirectAdmin default settings. I deleted the file and now it works again. There is also a my.cnf in /etc/ with just one line. That was the correct one according to support.

I would like to know how the problem was caused and if I perhaps broken anything else. The learning circle is not fully complete now :P.
 
Removing the config file completely you have "broken" the caching settings of MySQL, which now uses more CPU and disk IO load instead of RAM... but if it's not an high traffic server don't worry, it won't change much.

I already explained why it wasn't starting.
 
Sorry for resurrecting this thread. I thought it was important to add my findings and hopefully help someone else struggling to use Debian in combination with DA.

I had this same problem on a Debian 6 machine. The problem was caused by the fact that I installed munin, which depends on mysql-common. This creates the file /etc/mysql/my.cnf which is then read by DirectAdmin's MySQL and because DA comes with its own version of everthing, the config file has the wrong settings and thus points to the wrong files.

Code:
root@hostname:/usr/local/mysql/data# grep lang /etc/mysql/my.cnf
language        = /usr/share/mysql/english

DA puts SQL in /usr/local/mysql. So this makes sense:

Code:
120314 17:37:03 [ERROR] Can't find messagefile '/usr/share/mysql/english/errmsg.sys'

To fix it:
Code:
mv /etc/mysql/my.cnf{.bak} && service mysqld restart
 
@nbeernink,

Hello,

What do I miss? None of the server which I administrate had the issue, e.g.:

Code:
root@host1 ~ # cat /etc/mysql/my.cnf
cat: /etc/mysql/my.cnf: No such file or directory
root@silver ~ # cat /etc/debian_version
wheezy/sid
root@host1 ~ # aptitude search ~i | grep -i munin
i   munin                           - network-wide graphing framework (grapher/g
i A munin-common                    - network-wide graphing framework (common)
i A munin-doc                       - network-wide graphing framework (documenta
i   munin-node                      - network-wide graphing framework (node)
i A munin-plugins-core              - network-wide graphing framework (plugins f
i A munin-plugins-extra             - network-wide graphing framework (user cont
root@host1 ~ #
root@host1 ~ # aptitude search ~i | egrep -i --color "mysql|apache|php"
root@host1 ~ #

and

Code:
server:/usr/local# cat /etc/debian_version
6.0.6
server:/usr/local# aptitude search ~i | grep -i munin
i   munin                           - network-wide graphing framework (grapher/g
i A munin-common                    - network-wide graphing framework (common)
i   munin-node                      - network-wide graphing framework (node)
server:/usr/local# cat /etc/mysql/my.cnf
cat: /etc/mysql/my.cnf: No such file or directory
server:/usr/local#
server:/usr/local# aptitude search ~i | egrep -i --color "mysql|apache|php"
i A libdbd-mysql-perl               - Perl5 database interface to the MySQL data
i A libmysqlclient16                - MySQL database client library
i A mysql-common                    - MySQL database common files, e.g. /etc/mys
i   mytop                           - top like query monitor for MySQL

So, I'd rather say, your issue has nothing to do with munin.... unless you've installed something very special for munin.
 
Back
Top