475

My problem started off with me not being able to log in as root any more on my mysql install. I was attempting to run mysql without passwords turned on... but whenever I ran the command

# mysqld_safe --skip-grant-tables &

I would never get the prompt back. I was trying to follow these instructions to recover the password.

The screen just looks like this:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

and I don't get a prompt to start typing the SQL commands to reset the password.

When I kill it by pressing CTRL + C, I get the following message:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

If I retry the command and leave it long enough, I do get the following series of messages:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

But then if I try to log in as root by doing:

# mysql -u root

I get the following error message:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

I checked and /var/run/mysqld/mysqld.sock file doesn't not exist. The folder does, but not the file.

Also, I don't know if this helps or not, but I ran find / -name mysqld and it came up with:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

I don't know if this is normal or not. But I'm including this info just in case it helps.

I finally decided to uninstall and reinstall mysql.

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

After reinstalling all packages again in the same order as above, during the phpmyadmin install, I got the same error:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

So I tried again to uninstall/reinstall. This time, after I uninstalled the packages, I also manually renamed all mysql files and directories to mysql.bad in their respective locations.

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

Then I tried to reinstall mysql-server and mysql-client again. But I've noticed that it doesn't prompt me for a password. Isn't it supposed to ask for an admin password?

3
  • solved by just reboot the server, then restart the mysql service
    – bowpunya
    Commented Jan 19, 2017 at 8:09
  • 2
    @Anto This is not a duplicate. This one has /var/run/mysqld/mysqld.sock missing. The problem you linked has that file.
    – motorbaby
    Commented Sep 12, 2018 at 14:16
  • None of the answers here or anywhere else I could find solved my problem. As it was a new project I switched to PostgreSQL and it just works! :-) Commented Apr 8, 2020 at 20:55

54 Answers 54

435

Try this command,

sudo service mysql start
9
  • 6
    I had to use sudo service mysqld start Commented Dec 9, 2015 at 18:46
  • 3
    nice start: Job failed to start :( Commented Mar 28, 2016 at 23:49
  • 27
    sudo apt-get install mysql-server if you dont have it installed already :)
    – aimme
    Commented Jun 9, 2016 at 23:12
  • 24
    If you hit this issue, by all means, run this simple command FIRST before testing the other stuff, it only takes a second, and if the server simply isn't running, and is fine after you start it, it just means it didn't autostart, which would then be the actual problem to solve.
    – Lizardx
    Commented Aug 25, 2016 at 22:48
  • 2
    What if the service fails to start ?
    – cassepipe
    Commented Sep 26, 2022 at 22:46
246

To find all socket files on your system run:

sudo find / -type s

My Mysql server system had the socket open at /var/lib/mysql/mysql.sock

Once you find where the socket is being opened, add or edit the line to your /etc/my.cnf file with the path to the socket file:

socket=/var/lib/mysql/mysql.sock

Sometimes the system startup script that launched the command line executable specifies a flag --socket=path. This flag could override the my.cnf location, and that would result in a socket not being found where the my.cnf file indicates it should be. Then when you try to run the mysql command line client, it will read my.cnf to find the socket, but it will not find it since it deviates from where the server created one. So, Unless you care where the socket resides, just changing the my.cnf to match should work.

Then, stop the mysqld process. How you do this will vary by system.

If you're super user in the linux system, try one of the following if you don't know the specific method your Mysql setup uses:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Some systems aren't setup to have an elegant way to stop mysql (or for some reason mysql doesn't respond) and you can force terminate mysql with either:
    • One step: pkill -9 mysqld
    • Two step (least preferred):
      • Find the process id of mysql with either pgrep mysql or ps aux | grep mysql | grep -v grep
      • Assuming the process id is 4969 terminate with kill -9 4969

After you do this you might want to look for a pid file in /var/run/mysqld/ and delete it

Make sure the permissions on your socket is such that whatever user mysqld is running as can read/write to it. An easy test is to open it up to full read/write and see if it still works:

chmod 777 /var/run/mysqld/mysqld.sock

If that fixes the issue, you can tailor the permissions and ownership of the socket as needed based on your security settings.

Also, the directory the socket resides in has to be reachable by the user running the mysqld process.

14
  • 20
    Please don't recommend using kill -9; there are several ways that should be tried before it has to come to that. Commented Aug 16, 2012 at 16:17
  • @dot run this in file root 'find . -name mysqld.sock'. I have seen the socket file in other places than /var/run. Once you find it you might need to edit your my.cnf file to point to where it is found.
    – Ray
    Commented Aug 16, 2012 at 17:57
  • @ray, i tried to run the original command in a different way (i found a ubuntu specific post on another site..). Here's the commands I ran: "sudo service mysql stop" and "sudo mysqld --skip-grant-tables". After I do the second command, i get the following error: "InnoDB: Unable to lock ./ibdata1, error: 11". I can't find this ./ibdata1 file... InnoDB: Check that you do not already have another mysqld process
    – dot
    Commented Aug 16, 2012 at 18:24
  • 2
    @dot run ps -aux | grep mysqld and see if any other mysql processes are running
    – Ray
    Commented Aug 16, 2012 at 19:05
  • @ray. i'm rippng my hair out man. i decided to blow mysql away and retry... note my updated post.
    – dot
    Commented Aug 16, 2012 at 19:36
210

This error occurs due to multiple installations of mysql. Run the command:

ps -A|grep mysql

Kill the process by using:

sudo pkill mysql

and then run command:

ps -A|grep mysqld

Also Kill this process by running:

sudo pkill mysqld

Now you are fully set just run the following commands:

service mysql restart
mysql -u root -p

Have very well working mysql again

8
  • Hey folks, I was running all over the web trying to fix this. My problem was that I was trying to setup docker. I wanted it to use the mysql data dir that was previously used by mysql outside of docker... that ps command was the best!
    – Michael
    Commented Nov 13, 2014 at 16:14
  • 12
    Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
    – John Joe
    Commented Oct 9, 2017 at 15:42
  • 3
    Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
    – Adib Aroui
    Commented Aug 18, 2018 at 12:13
  • Tnx, you save my time. Commented May 28, 2019 at 18:24
  • 2
    Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details. Commented Aug 28, 2020 at 23:23
45

The solution is way easier.

  1. First, you have to locate(in Terminal with "sudo find / -type s") where your mysql.sock file is located. In my case it was in /opt/lampp/var/mysql/mysql.sock
  2. Fire up Terminal and issue sudo Nautilus
    This starts your Files manager with super user privileges
  3. From Nautilus navigate to where your mysql.sock file is located
  4. Right click on the file and select Make Link
  5. Rename the Link File to mysqld.sock then Right click on the file and Cut it
  6. Go to /var/run and create a folder called mysqld and enter it
  7. Now right click and Paste the Link File
  8. Voila! You will now have a mysqld.sock file at /var/run/mysqld/mysqld.sock :)
7
  • 6
    How do you locate your mysql.sock file? I tried find / -name 'mysql.sock' but it returns nothing. Commented Mar 26, 2013 at 3:11
  • 2
    @MatthewLock First off, make sure that mysql is running (by "ps aux | grep mysql"), otherwise, no mysql.sock would appear. Second, use "sudo find / -type s", which gives you all sockets on your system to locate mysql.sock
    – narengi
    Commented Jun 29, 2013 at 11:34
  • 1
    Report: This worked for me (although with different directories, since I'm using a different distribution): here's what I did: 1- checked at what location mysql tries to access the socket file (by reading the log file). For me, it was /usr/var/mysqld/mysqld.sock 2- made sure mysqld is running (by running /where/your/mysql/is/mssqld_safe) 3- searched for the location where mysql socket now sits (by sudo find / -type s let's just say it's on /tmp/mysql.sock) 4- made a soft link from where-it-is to where-it's-to-be (by sudo ln -s /usr/var/mysql/mysql.sock /tmp/mysql.sock)
    – narengi
    Commented Jun 30, 2013 at 8:26
  • 54
    What if the output of sudo find / -type s does not contain any mysql.sock?
    – jeff
    Commented Feb 25, 2015 at 15:16
  • 3
    If it's pain to get of where is mysql.sock through "find / -type s" - try to use "mysql_config --socket" command. You can install it with sudo apt-get install libmysqlclient-dev
    – alexche8
    Commented Jun 24, 2016 at 13:38
33

Just Need to Start MySQL Service after installation:

For Ubuntu:

sudo service mysql start;

For CentOS or RHEL:

sudo service mysqld start;
1
  • Check first by this sudo systemctl status mysql.service and sudo systemctl start mysql.service. This works for me Commented Jan 2, 2019 at 9:10
20

There is a bug on Ubuntu with MySQL 5.6 and 5.7 where var/run/mysqld/ would disappear whenever MySQL service stopped or is rebooted. This prevents MySQL from running at all. Found this workaround, which isn't perfect, but at least it gets it running after stopping/reboot:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
5
  • thank you - fixed it for me, I have to remake the directory and reset ownership on every restart of service mysql - have not been able to find the error reported anywhere officially or I would have posted link here :)
    – djoe
    Commented Mar 22, 2017 at 5:57
  • 1
    Haven't tried this, but maybe it will help you: Create a newfile /etc/tmpfiles.d/mysql.conf: # systemd tmpfile settings for mysql # See tmpfiles.d(5) for details and then, d /var/run/mysqld 0755 mysql mysql - After reboot, mysql should start normally. This is from bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823, comment 3. If you had this problem with MySQL 5.7, please comment on Launchpad. The more users that address the problem, the more attention it will get.
    – motorbaby
    Commented Mar 30, 2017 at 18:50
  • 1
    Worked for me... had to use mysql as username and not mysqld though Commented Apr 17, 2017 at 0:36
  • Adding line to /etc/tmpfiles.d/mysql.conf per motorbaby's comment fixed this issue for me. On a Centos 7 OS and using mysql Ver 15.1 Distrib 10.3.11-MariaDB,. Commented Dec 10, 2018 at 11:42
  • This fixed the issue for me.
    – shikata
    Commented Feb 17, 2020 at 15:00
19

Make sure your inaccessible socket file path is same as '/var/run/mysqld/mysqld.sock', otherwise change the path as yours. Stop the mysqld

$ sudo /etc/init.d/mysqld stop

If the process still runing;

$ sudo pkill -9 mysqld

Remove the mysql directory where socket going to create. For me it did not allowed to remove, so I had to forcefully remove.

$ sudo mkdir -p /var/run/mysqld

Set the ownership to the dirctory

$ sudo chown mysql:mysql /var/run/mysqld

Start mysql

$ sudo /etc/init.d/mysql start

Trying to connect mysql

$ sudo mysql -u dbuser -p
2
  • Yes thats the same Answer I gave at Feb 14 '19 at 11:56 (see below)
    – Ingo
    Commented Jan 18, 2020 at 17:20
  • You are life saver.
    – Sahib Khan
    Commented Mar 14, 2020 at 20:10
17

Okay just copy and paste these codes: This should be done in the terminal, inside a server, when your mysql database is not properly installed, and when you are getting this error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'.

Stop MySql

sudo /etc/init.d/mysqld stop

Restart it or start it

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

Make a link like this and give it to the system

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

Run a secure installation which guides all the process you need to do to configure mysql

/usr/bin/mysql_secure_installation
2
  • i get same Can't connect error when i try running above command.
    – cjmling
    Commented Jan 10, 2018 at 16:59
  • Just something I discovered, for those running ubuntu. If you start mysqld using /etc/init.d/mysqld start you will run into this issue anyway. Use service mysql start instead and it will be fine. Infuriating, but I figured it out in the end.
    – Adam Short
    Commented Dec 2, 2019 at 14:18
15

I faced same error and found that it was due to upgradation of packages, So after restarting my system I resolved error.

I think due to sql libraries/ packages update that error occured, So try this if you are doing some upgrading :)

1
  • 1
    I did this after reinstall (or upgrade) and now it works. No more socket message. Thanks!
    – wraithie
    Commented Sep 20, 2017 at 12:37
11

Why getting this error

I received new updates of mysql libraries so i updated my Kubuntu OS after that getting these errors.


Commands i tried and how i fixed it.

MySql-server is running correctly but when i tried to connect its giving

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

I checked /var/run/mysqld/mysqld.sock'. this directory. My files did not existed.

I also tried these commands to connect but did not worked for me.

 mysql -h 127.0.0.1 -P 3306 -u root -p

 sudo service mysql start

After wasting round about 2 hours i found the solution

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

After that everything fixed for me.

3
  • This helped me to fix the problem. I dont understand how is it related to socked problem i had...
    – Čamo
    Commented May 21, 2020 at 17:38
  • I am getting the same error and follow the same steps to fix the above problem, but still getting the error Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xeu mysql.service" for details. , using ubuntu 22.04 latest version. Commented Nov 10, 2022 at 3:57
  • I wish people would stop asking people to upgrade their operating system.
    – Owl
    Commented May 12, 2023 at 10:56
9

The answer of the user load step worked for me. Sometimes is need edit the file in /etc/mysql/my.cnf add line to client

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock
3
  • This gives me: mysql: unknown variable 'Host=127.0.0.1'
    – Splaktar
    Commented Mar 19, 2014 at 13:54
  • @Splaktar: there's a typo. Host need to be lowercase host and it will work. Also, this solution worked for me. Commented Apr 18, 2014 at 9:10
  • 2
    Brilliant - this is working for me and my docker environment - i only had to adjust the ip which is in my case the docker mysql container ip 172.17.x.x
    – InforMedic
    Commented Jan 23, 2018 at 9:58
9

There is a lots of reason for this issue, but sometimes just restart the mysql server, it will fix the issue.

sudo service mysql restart
0
9

Temporary Solution

Maybe someone facing this problem. I am using Mysql Workbench on Ubuntu 14 and got this error.

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

Find your socket file by running sudo find / -type s, in my case it was /run/mysqld/mysqld.sock

So, I just created a link to this file in tmp directory.

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

Please note that this is a temporary solution since the file created will be under /tmp. See other answers for a permanent solution.

2
  • As you can see the location of file is under /tmp folder so it'll be removed for sure. You can change .sock file location. See @user3002884 answer.
    – Bilal
    Commented Aug 7, 2016 at 10:26
  • I know, I was just completing your answer so other users know before that the solution is just temporary, as the folder Commented Aug 8, 2016 at 7:44
8

I think your MySQL server has not started. So start the server using one of the following commands.

#services mysql start

or

#/etc/init.d/mysql start
7

*Error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

solutions

finally uninstall and reinstall mysql. **

  • sudo apt-get remove mysql-server
  • sudo apt-get remove mysql-client
  • sudo apt-get remove mysql-common
  • sudo apt-get remove phpmyadmin

then install again by

  • sudo apt-get install mysql-server-5.6

After this operation, 164 MB of additional disk space will be used.

  • Do you want to continue? [Y/n] Y press YES for complete installations

...... .......

  • At last you will get these lines....

    Setting up libhtml-template-perl (2.95-1) ...

    Setting up mysql-common-5.6 (5.6.16-1~exp1) ... Processing triggers for libc-bin (2.19-0ubuntu6) Processing triggers for ureadahead (0.100.0-16) ...

  • And then

    root@ubuntu1404:~# mysql -u root -p (for every password first u should use )

  • Enter password:

  • Note :Entered password should be same as the installation time password of mysql(like .root,system,admin,rahul etc...)

    Then type

  • USE rahul_db(database name);

Thanks.**

3
  • please improve the answer quality
    – Mo.
    Commented Oct 3, 2014 at 13:55
  • This worked for me due to multiple mysql versions installed. also remove mysql-server-5.6/5.5, mysql-client-5.6/5.5. Thanks!
    – Luuk Skeur
    Commented Feb 26, 2016 at 10:39
  • got E: Package 'mysql-server-5.6' has no installation candidate, it not exists in Ubuntu 18.04
    – juliocesar
    Commented Jul 16, 2019 at 14:48
7

Using XAMPP on ubuntu:

  1. Create a folder called mysqld inside /var/run directory. You can accomplish that using the command sudo mkdir /var/run/mysqld.

  2. Create a symbolic link to mysql.sock file that is created by the XAMPP server when it is started. You can use the command sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock.

Note: The mysql.sock file is created when the server is started and removed when the server is stopped, so sometimes the link you created might appear to be broken but it should work as long as you have started the server using either sudo /opt/lampp/lampp start or any other means.

  1. Start the server if it's not already running and try executing your program again.

Good luck! I hope you'll get away with it this time.

1
  • @MohsinKhan go to localhost/phpmyadmin and import the database from there
    – user6419437
    Commented Mar 16, 2019 at 10:53
5

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

in /etc/my.cnf add this lines:

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

And restart the service with: service mysql restart

this worked for me

1
  • 2
    In Ubuntu 18.04.4 LTS, location should be /etc/mysql/mysql.cnf
    – UWU_SANDUN
    Commented Jul 14, 2020 at 13:51
5

This was mentioned a couple of times already, but this worked immediately for me:

service mysql restart

1
  • Interesting how this is different from using just the simple, "mysql" command
    – luminol
    Commented Sep 19, 2017 at 16:38
5

I had the exactly same issue. After struggling for an hour, I found a way of correcting it without reinstalling mysql-common, mysql-client, mysql-server.

First of all, go to "/var/run/mysqld". You will find that the mysql.sock does not exist. Simply remove the entire mysqld directory and recreate it and provide it necessary privileges.

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

Now, Kill the mysql process in it's entirety. It might be possible that it will show you "waiting for page cleaner" on running "/etc/init.d/mysql status" command even after shutting down the service.

To completely close the service, use

# pkill -9 mysqld

Once the process is killed, try starting it again using

# /etc/init.d/mysql start

And you will see that it works good! And also there will be no issue in stopping it too.

4

you can find mysqld.sock in /var/run/mysqld if you have already installed mysql-server by sudo apt-get install mysql-server

4

I just had this problem on Ubuntu 14.10

Turns that mysql-server was no longer installed (somehow it had been removed) but I couldn't just install it because there were some broken packages and dependency issues/conflicts.

In the end I had to reinstall mysql

sudo apt-get remove mysql-client
sudo apt-get install mysql-server
4

My solution;

Ubuntu 18.04 (WSL)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

I changed the port. It's worked for me. You can write another port. Example 3355

4

I am using XAMPP on Ubuntu. I found this error when connecting database through terminal. I solve it without any configuration because default socket file path in XAMPP is written in "/opt/lampp/etc/my.cnf" as following:

[client]
#password   = your_password
port        = 3306
socket      = /opt/lampp/var/mysql/mysql.sock

now you can connect just by giving this socket path parameter with mysql command on terminal like:

mysql -u root --socket /opt/lampp/var/mysql/mysql.sock

and it's done without any configuration.

If you don't want to type socket path everytime, then go for changing default path in my.cnf by "/var/run/mysqld/mysqld.sock". Provide permissions and restart mysql server.

Edit: Recently I've installed Ubuntu 20.04 and trying to install MySQL server but my system were crashing and not working at all. So I've just completely removed MySQL and installed MariaDB. Its working like a charm without any problems.

4

You must install mysql-server

apt install mysql-server
3

In My case two mysqld processes were running.. killed the optional processs by using pkill -9 mysqld

1
  • I needed to add the 'sudo' kill the process.
    – noti
    Commented Jan 20, 2014 at 15:02
3

If you have a lot of databases and tables on your system, and if you have innodb_file_per_table set in my.cnf, then your mysql server might have run out of opened objects / files (or rather the descriptors for these objects) Set a new max number with

open-files-limit = 2048

and restart mysql. This approach might help when the socket is not created at all, but really this might not not be the real problem, there is an underlying problem.

2

Changing the host to 127.0.0.1 worked for me.

Edit the file in /etc/mysql/my.cnf and add the below mentioned line to the section: client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

After you are done with it. Execute the following command.

sudo service mysql start
2
  • This my friend, helped me :) Commented May 5, 2015 at 12:00
  • @NBhargav i am so happy that u could solve ur problem .. Cheers buddy .. 😇😇
    – Du-Lacoste
    Commented May 5, 2015 at 12:41
2

I had similar problem on a CentOS VPS. If MySQL won't start or keeps crashing right after it starts, try these steps:

1) Find my.cnf file (mine was located in /etc/my.cnf) and add the line:

innodb_force_recovery = X

replacing X with a number from 1 to 6, starting from 1 and then incrementing if MySQL won't start. Setting to 4, 5 or 6 can delete your data so be carefull and read http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html before.

2) Restart MySQL service. Only SELECT will run and that's normal at this point.

3) Dump all your databases/schemas with mysqldump one by one, do not compress the dumps because you'd have to uncompress them later anyway.

4) Move (or delete!) only the bd's directories inside /var/lib/mysql, preserving the individual files in the root.

5) Stop MySQL and then uncomment the line added in 1). Start MySQL.

6) Recover all bd's dumped in 3).

Good luck!

2

I uninstalled mysql in Ubuntu 16.04 https://askubuntu.com/questions/172514/how-do-i-uninstall-mysql

I reinstalled mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04

This seemed to work.

2

Try the following at a terminal prompt:

sudo mysql

Once that lets you in, you can create a new user and grant privileges that you want on the specific database they need access to.

Mysql 5.7 changed some things and by default uses the auth_socket plugin (as opposed to mysql_native_password) for root to protect the account from getting hacked. You can override this by setting the plugin field for root, but unless you have a very good reason you probably shouldn't circumvent the protection. Especially when sudo mysql is easier than mysql -u root -p anyway.

I found out this info - of all places - from a Raspberry Pi help site. Worked like a charm after Lubuntu 18.04 annoyed the heck out of me for a couple hours.

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