Oracle website seems to imply it only works on 15 and 14. http://dev.mysql.com/downloads/workbench/

Also two of my Ubuntu 16.04 machines don't seem to be able to connect (Access is Denied errors for root)


It installs okay. It opens okay. But it won't connect to localhost.

Anyone have any luck?

  • 1
    Did you build it from source? What's the exact error given? Similar to when you specify an incorrect password?
    – user508889
    May 16 '16 at 23:39
  • Yes it is similar. But root has no password. And I can connect to root on command line correctly. And I double checked all priveleges and ran FLUSH PRIVILEGES; At this point I'm curious if anyone can connect to localhost from 16, since the Oracle site explicitly says 14 and 15 only
    – Jonathan
    May 16 '16 at 23:42
  • I didn't see Oracle make a claim it doesn't work, I just didn't see a binary for Xenial. I do however see mysql-workbench here, packages.ubuntu.com/xenial/mysql-workbench. That error doesn't seem like a software compatibility error. Turn logging on mysql and increase the logging level to 2 and see if the log shows your request.
    – user508889
    May 16 '16 at 23:50
  • @bc2946088 mysql-workbench is in the universe repository for 16.04 link
    – Videonauth
    May 16 '16 at 23:58
  • did you check any of the 4 options? ;-) WB works perfectly fine for me (with 5.7 btw). Proof below.
    – Rinzwind
    May 18 '16 at 20:02

10 Answers 10


The issue is likely due to socket authentication being enabled for the root user by default when no password is set, during the upgrade to 16.04. This important caveat is documented in the 16.04 release notes:

Password behaviour when the MySQL root password is empty has changed. Packaging now enables socket authentication when the MySQL root password is empty. This means that a non-root user can't log in as the MySQL root user with an empty password.

For whatever reason, the MySQL Workbench that came with 16.04 doesn't work out of the box with MySQL server, at least for me. I tried using "Local Socket/Pipe" to connect in a number of different ways but to no avail.

The solution is to revert back to native password authentication. You can do this by logging in to MySQL using socket authentication by doing:

sudo mysql -u root

Once logged in:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

which will revert back to the native (old default) password authentication. If you've attempted some other method to fix the issue, you'll want to make sure the "plugin" field in mysql.user is set to "auth_token", which may require using mysqld_safe to log in to MySQL in the event you've been tinketing with things, like I did.

Credit to Miguel Nieto's blog post for this solution.

  • Amazing, I would never had realized this.
    – Jonathan
    Jun 14 '16 at 19:50
  • This fixed it, but the next time I ran apt update it broke again.
    – Jonathan
    Jul 1 '16 at 21:50
  • What was the apt update output?
    – Mike M
    Jul 3 '16 at 1:04
  • I didn't see it, because I didn't notice until next time I ran mysql, much later on
    – Jonathan
    Jul 3 '16 at 1:07
  • I wonder if this is a Ubuntu 16.04 thing or a mysql 5.7 thing (was it Oracle or Canonical who made this change?)
    – Jonathan
    May 4 '17 at 0:33

MySQL 5.7 and up don't support connecting as "root" in mysql-workbench so you must create a normal user and connect via that.

sudo mysql -u root -p

Create a user named "admin" and use that to connect in mysql-workbench.

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
  • 1
    This answer was perfect for me, thanks Jonathan. Jan 22 '19 at 7:54
  • 4
    This works for Ubuntu 18.04 Apr 29 '19 at 21:44
  • 1
    Perfect. Thank you (18.04.2)
    – Ron Nuni
    Jun 12 '19 at 20:22
  • 1
    Worked perfectly well.
    – manpikin
    May 10 '20 at 18:21
  • 2
    Worked for me in Ubuntu 20.04
    – surya_hs
    Dec 17 '20 at 2:53

This question might be two years old but my work with mysql-workbench tonight seems to have given me the answer to it.

root user now users auth_socket authentication by default. The only way root can gain access is by being logged in as root.

I found this out by running mysql -u root both as root user and standard user.

It would not work under standard user.

So my next question was - what user does mysql-workbench run as. Turns out it runs as standard user by default. To get it to run as root user it has to be run from root. So I went into root user CLI and type 'mysql-workbench'.

I then had to go into the settings for the root user as shown here. The file location is valid for an ubuntu 18.04 installation.

Root connection settings mysql-workbench.

If that socket location is invalid then you'll need to go into the mysql CLI from root or sudo and run the following command.

MySQL CLI command to find the socket.

After you have the correct settings test the connection. It should be successful and you're ready to go.

  • Thank you for this! I shouldn't have to revert security-related changes to authentication to support an older tool, when I can just tell that tool to connect using the newer method.
    – Aaron
    Apr 25 '19 at 14:18
  • Do I achieve a local connection through this way? I don't understand why can't we connect through TCP/IP. Dec 11 '19 at 22:09

Try this

select mysql database

use mysql;
UPDATE user set plugin='mysql_native_password' where User='root';
flush privileges;


sudo service mysql restart

Works fine for me and I did nothing special. Installed mysql-server-5.7 and workbench both from command line and set up a user with a password and set up the normal database permissions (also with the normal method).

enter image description here

And with a database and table:

enter image description here

  • Interesting. Love the discworld reference. When I reconfigure the mysql packages, I do not get a prompt to change the password. Do you? I'm leaning towards thinking I have a corrupted install or some conflict. I think I'm supposed to get a prompt to change the root password.
    – Jonathan
    May 20 '16 at 0:59

Create an user account with appropriate administrative privileges that can connect via mysql workbench using the auth_socket plugin. Note that this does not work for root connections to the mysql server.

Logon to mysql from a terminal session:

$sudo mysql

If you are able to do this then the auth_socket plugin is enabled and the root account is authenticating using this plugin. Note that this is the default setup when installing mysql on ubuntu after having run the secure installation script.

First create a mysql user for your account 'valerie':

mysql> CREATE USER 'valerie'@'localhost' IDENTIFIED WITH auth_socket;

Enable administrative privileges for the account:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'valerie'@'localhost' WITH GRANT OPTION;

Exit the shell:

mysql> exit

Then in mysql workbench:

  1. Create a new connection
  2. Select the connection method as Local Socket/Pipe
  3. Set the Socket/Pipe Path to: /var/run/mysqld/mysqld.sock (note that this is the path for a Debian / Ubuntu system and changes for other flavors of Linux)
  4. Set the username ('valerie' in this example)

You should be able to then connect to the mysql server with this connection.


If you are getting this error in Workbench then follow this steps.

First simply log in with your current password:

sudo mysql -u root -p

Then change your password because having low strength password gives error sometimes.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-strong-password';


Then simply exit and again login with your new password:


sudo mysql -u root -p

Once you successfully logged in type the command:

use mysql;

It should show a message like 'Database changed' then type:

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

After that type:

UPDATE mysql.user set authentication_string=PASSWORD('new-strong-password') where user='root';

Then type:


Then simply exit:


Now try to log in with your new password in your WORKBENCH. Hope it will work. Thank you.


I had the same problem on newly installed 21.04 Ubuntu, after trying all these methods that didn't quite work.

I tried to go into settings and allowed all the permissions and it worked for some reason.

Screenshot of the mysql setting

  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. To get notified when this question gets new answers, you can follow this question. Once you have enough reputation, you can also add a bounty to draw more attention to this question. - From Review Oct 12 at 11:22
  • @ChanganAuto - The screenshot of all the settings enabled appears to be the answer. Oct 12 at 11:24

MySQL server on AWS host running Ubuntu 16.04; mysql-workbench on Ubuntu 16.04 laptop; uses KeyPair connection.

After setting up Test db connection was working. But the actual connection always failed with a message like the one posted by Jonathan Leaders. Checked the log at ~/.mysql/workbench/log and found a few "permission denied" messages.

Now I can get mysql-workbench to work with: sudo mysql-workbench

And later I can go and chmod the directories needing permission.

  • 3
    Is this an answer to the question? Mar 4 '17 at 12:23

I ran this command and it fixed my issue:

sudo snap connect mysql-workbench-community:password-manager-service :password-manager-service

Thanks to Jos for his answer here

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.