Нашей задачей является сброс потерянного основного root пароля MySQL на Ubuntu 18.04
При установке LAMP сервера на Ubuntu 18.04 я с настройками рута в попыхах неправильно настроил. В результате чего у меня вообще перестал работать MySQL. И старые инструкции приводили только к сбоям. Вконце концов я наше на англоязычном рунете работающую инструкцию. И решил вам написать русский вариант.
Начнем с остановки текущей базы данных MySQL:
$ sudo service mysql stop
Затем создаем /var/run/mysqld каталог, который будет использоваться процессом MySQL для хранения и доступа к файлу сокета:
$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld
После этого запускаем MySQL с помощью следующей команды:
$ sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Проверяем, процесс работы:
$ jobs
Результат
[1]+ Running sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
На этом этапе мы получили доступ к базе данных MySQL без пароля:
$ mysql -u root
Welcome to the MySQL monitor.
Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20-1ubuntu1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Сбросим привелегии MySQL:
mysql> FLUSH PRIVILEGES;
Затем сбросим пароль root. Следующие команды сбрасывают пароль администратора MySQL
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("ваш пароль") WHERE User='root';
mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
Выходим из сеанса MySQL:
mysql> quit
Завершаем текущий mysqld процесс:
$ sudo pkill mysqld
И наконец, запускаем базу данных MYSQL:
$ sudo service mysql start
Если все хорошо до вы должны войти с помощью нового пароля
$ mysql -u root --password=<ваш пароль>
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20-1ubuntu1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>