Search code examples
mysqlubuntu-14.04mysqladmin

mysqladmin: connect to server at 'localhost' failed


Today (2015-05-02) I upgraded my Linux system via apt-get update and
apt-get upgrade whereas mysql, mysqladmin and a lot more packages
have been updated. The mysql-server-5.5 runs and I can login and do all
the typical database operations but when I type:

user@ubuntu:~# mysqladmin proc

I get the following error:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

Formerly I could solve this issue by simple setting the mysql root password new.
This does not solve the issue anymore:

user@ubuntu:~# sudo dpkg-reconfigure mysql-server-5.5

How do I get the mysqladmin up again without reinstalling mysql?


Solution

  • Short version: If your MySQL user root needs a password to connect, it might be a good idea to have mysqladmin provide that password ;)

    Longer version: Your MySQL user root seems to need a password to connect

    setting the mysql root password new

    But mysqladmin tries to connect without a password

    'Access denied for user 'root'@'localhost' (using password: NO)'

    And mysqladmin does that because you're not telling it otherwise ;)

    mysqladmin, like other MySQL-related command line tools (mysql, mysqldump, mysqlshow etc.), offers options to provide such access data.

    • h: Which host to connect to. If not provided, localhost is assumed
    • u: Which user to connect as. If not provided, root is assumed
    • p: Which password to use. If not provided, no password is used

    You should be able to use something like

    mysqladmin -uroot -pmysupersecretpassword proc
    

    (be aware that there's no space between the options and their values). You can also have MySQL ask you for the password like

    mysqladmin -uroot -p proc
    

    With that, MySQL should give you a prompt where you can enter your password.