I am trying to reset the root password following MysqlPasswordReset but when I try to start the server with --skip-grant-tables the server doesn't start
- Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic x86_64)
- mysql Ver 14.14 Distrib 5.7.17, for Linux (x86_64)
Server is running
$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Stop server
$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
Trying to start with --skip-grant-tables
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 9856
Connect with no password
$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[1]+ Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
I also tried to start with mysql_safe (error.log is empty)
sudo mysqld_safe --skip-grant-tables
2017-02-01T16:33:31.382105Z mysqld_safe Logging to syslog.
2017-02-01T16:33:31.383942Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T16:33:31.386058Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T16:33:31.388009Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
I tried many ways including @pedronalbert 's but still not working.
The way I solved it is adding "skip-grant-tables" in /etc/my.cnf then start mysql service and connecting mysql with "mysql -u root" as https://www.codero.com/knowledge-base/content/33/296/en/how-to-reset-your-root-mysql-password.html
It works in my VM CentOS 7.
pedronalbert's answer above worked for me but the last step is now deprecated and throws the following warning:
Use this command instead:
I found that the mysql.sock is deleted when the mysql service is stoped and mysqld_safe can't create it (I couldn't find the reason), so my solution was back up the sock folder and restore before start mysqld_safe
Start server
Go to sock folder
Back up the sock
Stop server
Restore the sock
Start mysqld_safe
Init mysql shell
Change password