5

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

installation

# 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

error

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
/var/log/mail.err
/var/log/news/news.err

my.cnf

#
# 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/local/mysql
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /opt/mysql/server-5.6/share/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        = 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
#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
#
# * 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



[mysqldump]
quick
quote-names
max_allowed_packet  = 16M

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

[isamchk]
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/

update

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)
4
  • 2
    please run mysql_upgrade !!!!!!!!!!!!
    – NickW
    Jun 19, 2013 at 12:29
  • have updated my question.. I get an error while running mysql_upgrade
    – clarkk
    Jun 19, 2013 at 12:35
  • Can you run mysql_upgrade --verbose ?
    – NickW
    Jun 19, 2013 at 12:49
  • no.. same error
    – clarkk
    Jun 19, 2013 at 12:50

6 Answers 6

16
+100

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.

5
  • ok, now the server is starting, but can't connect to mysql.. have updated the question
    – clarkk
    Jun 21, 2013 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, 2013 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, 2013 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, 2013 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, 2013 at 22:47
2

If this is a first time install install the dbs

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

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.

0

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.

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

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)
0

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .