The mysql server is installed on a clean install of Debian 7

Have tried this serveral times each time on a clean install of Debian


# apt-get update && apt-get upgrade
# groupadd mysql
# useradd -r -g mysql mysql
# apt-get install libaio1
# wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.12-debian6.0-x86_64.deb
# dpkg -i mysql-5.6.12-debian6.0-x86_64.deb
# cd /usr/local
# ln -s /opt/mysql/server-5.6 mysql
# cd mysql
# scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql
# rm /opt/mysql/server-5.6/my.cnf
# ln -s /var/ini/my.cnf /opt/mysql/server-5.6/my.cnf
# cp support-files/mysql.server /etc/init.d/mysql
# service mysql start


root@Debian-70-wheezy-64-minimal /usr/local/mysql # service mysql start
/opt/mysql/server-5.6/bin/my_print_defaults: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
Fatal error in defaults handling. Program aborted
Starting MySQL
.[....] The server quit without updating PID file (/opt/mysql/server-5.6/data/De[FAIL70-wheezy-64-minimal.pid). ... failed!

error log (not existing)

root@Debian-70-wheezy-64-minimal ~ # updatedb
root@Debian-70-wheezy-64-minimal ~ # locate .err


# 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.
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.
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

# * Basic Settings
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr/local/mysql
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /opt/mysql/server-5.6/share/english
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        =
# * Fine Tuning
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
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.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
# Here you can see queries with especially long duration
#log_slow_queries   = /var/log/mysql/mysql-slow.log
#long_query_time = 2
# 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
# * 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!
# * 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

max_allowed_packet  = 16M

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

key_buffer      = 16M

# * 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/


Now the server is starting, but can't connect to mysql

root@Debian-70-wheezy-64-minimal ~ # mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  • 2
    please run mysql_upgrade !!!!!!!!!!!! – NickW Jun 19 '13 at 12:29
  • have updated my question.. I get an error while running mysql_upgrade – clarkk Jun 19 '13 at 12:35
  • Can you run mysql_upgrade --verbose ? – NickW Jun 19 '13 at 12:49
  • no.. same error – clarkk Jun 19 '13 at 12:50

They have probably moved some stuff around... Try running mkdir /etc/mysql/conf.d/ and start mysql again.

Your config includes that dir, but it isn't present on your server as the error message states.

  • ok, now the server is starting, but can't connect to mysql.. have updated the question – clarkk Jun 21 '13 at 15:40
  • mysql -u root -S /var/run/mysqld/mysqld.sock (Check your error message against your config file please.) Your config file is probably not made for the the debian version from mysql.com. You should really use the one bundled with Debian (Or are they bundling MariaDB now?) – espenfjo Jun 21 '13 at 15:46
  • I use the my.cnf which is bundled with this version of mysql.. have just made my own config file, so I didn't need to modify the config file in each 422992849 times I did the install.. but how can you then connect from PHP!? – clarkk Jun 21 '13 at 15:55
  • Sorry, but it sounds like you are completely lost... You should remove everything connected to mysql, and install debians mysql. in wheezy it should be version 5.5 which should be good enough. – espenfjo Jun 21 '13 at 16:06
  • No, not completly lost.. After you specified the socket file in the syntax I thought you should do something similar when connecting from external.. But now everything is running.. Somehow the mysql installation doesn't work if you install webmin, apache etc first.... – clarkk Jun 21 '13 at 22:47

If this is a first time install install the dbs

  • have already done that – clarkk Jun 19 '13 at 13:17
  • is this a new install.. meaning there is nothing you care about losing? – Mike Jun 19 '13 at 13:20
  • yes.. fresh installation.. no previous data – clarkk Jun 19 '13 at 14:32
  • have updated the question showing how the server was installed – clarkk Jun 19 '13 at 14:37

Ran into same error installing Percona 5.6 on Ubuntu Precise.

Creating a conf.d directory in /etc/mysql (/etc/mysql/conf.d/) and reinstalling after an apt-get purge and auto clean resolved the issue.


Do you have MYI and MYD files on your MySQL installation? if you do, you should erase them and restart the mysql_install_db and double check that the files are ok. You should also check your linux permissions.

  • this is a fresh installation.. and mysql owns the dir – clarkk Jun 19 '13 at 14:31
  • have updated the question showing how the server was installed – clarkk Jun 19 '13 at 14:38

The error message is telling you exactly what's wrong: It's expecting to find some default config info in /etc/mysql/conf.d:

/opt/mysql/server-5.6/bin/my_print_defaults: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)

Have you created that directory and populated it with the config files appropriately?

Also, this:

The server quit without updating PID file (/opt/mysql/server-5.6/data/De[FAIL70-wheezy-64-minimal.pid)

It also might be caused because /var/lib/mysql-files/ directory does not exist or has inappropriate permissions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.