Подтвердить что ты не робот

Не удается reset пароль root с помощью -skip-grant-tables на ubuntu 16

Я пытаюсь reset пароль root после MysqlPasswordReset, но когда я пытаюсь запустить сервер с -skip-grant -tables сервер не запускается

  • Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic x86_64)
  • mysql Ver 14.14. Распространение 5.7.17 для Linux (x86_64)

Сервер работает

$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Остановить сервер

$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.

Попытка начать с -skip-grant-tables

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 9856

Подключиться без пароля

$ 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

Я также попытался начать с mysql_safe (error.log пуст)

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.
4b9b3361

Ответ 1

Я обнаружил, что mysql.sock удаляется, когда служба mysql останавливается, и mysqld_safe не может ее создать (я не могу найти причину), поэтому мое решение вернуло папку с носками и восстановило их до запуска mysqld_safe

Запустить сервер

$ sudo service mysql start

Перейдите в папку sock

$ cd /var/run

Верните носок

$ sudo cp -rp ./mysqld ./mysqld.bak

Остановить сервер

$ sudo service mysql stop

Восстановить носок

$ sudo mv ./mysqld.bak ./mysqld

Запустите mysqld_safe

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Инициировать оболочку mysql

mysql -u root

Сменить пароль

FLUSH PRIVILEGES;

SET PASSWORD FOR [email protected]'localhost' = PASSWORD('my_new_password');

Ответ 2

sudo dpkg -P mysql-server mysql-server-5.7
sudo apt-get autoremove
sudo apt-get clean
dpkg -l | grep -i mysql
sudo rm -rvf/var/lib/mysql
sudo apt-get install mysql-server