Hello all, I recently upgraded my Etch server to Lenny. At the same time, I also messed with the /var directory, trying to symlink it to another partition to save space. At some point, mysql stopped working, and I can't manage to start it again. Starting manually doesn't help : Code: Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! Here's the syslog : Code: May 28 08:09:10 numerizen /etc/init.d/mysql[3635]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in May 28 08:09:10 numerizen /etc/init.d/mysql[3635]: ^G/usr/bin/mysqladmin: connect to server at 'localhost' failed May 28 08:09:10 numerizen /etc/init.d/mysql[3635]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' May 28 08:09:10 numerizen /etc/init.d/mysql[3635]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists! May 28 08:09:10 numerizen /etc/init.d/mysql[3635]: Which is not really helpful. I'm almost sure it's a permissions problem, as I had to fix some for other services. I tried to purge the package and reinstall but no luck. I tried to create /var/run/mysqld/mysqld.sock manually but it didn't do any good. Code: [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 # 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 # # 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 max_connections = 15 table_cache = 512 #thread_concurrency = 10 # # * Query Cache Configuration # query_cache_limit = 16M query_cache_size = 64M query_cache_type = 1 # # * 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. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log # WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian! #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! # !includedir /etc/mysql/conf.d/ My production server is down and any help or hint would be greatly appreciated. Thanks for your time
Fixed Ok, sorry for the unneeded message. It happened that bind working directory wasn't writable and bind didn't start. Also, permissions in /var/lib/mysql were wrong. A few chgrp and chmod fixed this. Sorry again.
I stumbled on this again : the /var/lib/mysql folder has wrong permissions (root:root instead of mysql:mysql). This is easy enough to fix, but I wonder if anyone has an explanation as to why this directory keeps being reverted to root ownership ?