Skip grant tables linux

Сброс пароля root в MySQL

Для доступа к базе данных MySQL или MariaDB нужно ввести имя пользователя и пароль. Во время установки автоматически создаётся учётная запись пользователя root. Это аналог суперпользователя в Linux для MySQL. Он может выполнять все действия со всеми базами данных, а также создавать и удалять других пользователей.

Обычно, пароль для него не устанавливается, и вы можете задать его вручную уже после завершения установки. Но если вы забыли пароль или он был установлен автоматически, но вы его не знаете, то вам может понадобится его сбросить. Это можно сделать несколькими способами. В этой статье мы разберём, как выполняется сброс пароля root MySQL.

В статье я буду использовать Ubuntu и MariaDB, но эта инструкция подойдёт и для других дистрибутивов. В командах с systemctl для Mariadb следует использовать mariadb, а для MySQL — mysql или mysqld.

1. Сброс пароля с помощью init-file

При запуске сервиса MySQL можно указать файл, из которого будут выполнены команды sql сразу после запуска. Адрес этого файла указывается опцией —init-file. Но сначала давайте создадим файл, который будет изменять файл нашего пользователя:

UPDATE mysql.user SET password=password(‘новый пароль’) WHERE user=’root’;

Затем остановите сервис, если он запущен:

sudo systemctl stop mysql

sudo systemctl stop mariadb

Теперь осталось выполнить наш файл:

sudo mysqld —user=mysql —init-file=/home/sergiy/init-file.txt —console

Подождите минуту, чтобы всё успело сработать как нужно, а затем остановите этот процесс. В консоли команда сообщит started as proccess и PID процесса, этот PID нам и нужен, чтобы его остановить. Например:

Далее запустите mysql обычным способом и попробуйте войти со своим новым паролем:

sudo systemctl start mariadb

Сброс пароля с помощью skip-grant-tables

Кроме того, есть и другой способ сбросить пароль MySQL. Мы можем запустить сервис с параметром —skip-grant-tables. В этом режиме программа пропускает загрузку данных о пользователях и тогда вы можете авторизоваться без ввода пароля. Аналогично, сначала нужно остановить сервис:

sudo systemctl stop mariadb

Затем запустите mysql вручную с помощью такой команды:

sudo mysqld —user=mysql —skip-grant-tables

Войдите в консоль управления mysql:

Так как мы загрузились без таблиц привелегий пользователей, то эти таблицы необходимо подгрузить сейчас:

Теперь можно сменить пароль для пользователя root:

UPDATE mysql.user SET password=password(‘новый пароль’) WHERE user=’root’;

Затем закройте консоль клиента mysql:

Завершите запущенный вручную сервис, таким же образом как в предыдущем пункте:

И запустите mysql в нормальном режиме:

sudo systemctl start mariadb

Дальше вы можете авторизоваться от имени суперпользователя по этому паролю:

Но, нужно отметить, что для последних версий MariaDB это уже не нужно, так как программа поддерживает авторизацию без пароля если имя пользователя базы данных и имя учетной записи в системе совпадают. Поэтому, если вы хотите войти под root в консоль MySQL, достаточно запустить клиент через sudo.

Читайте также:  Linux system bit info

Выводы

В этой статье мы рассмотрели, как выполняется сброс пароля MySQL Ubuntu. Разработчики постоянно что-то меняют в коде сервиса, поэтому в последних версиях команды ALTER USER или SET PASSWORD могут не работать. Поэтому мы используем универсальную команду UPDATE. Надеюсь, эта информация была для вас полезной.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Похожие записи

Оцените статью

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

8 комментариев к “Сброс пароля root в MySQL”

Losst, здравствуйте. Извиняюсь за некорректно написанную просьбу (и не в теме), но облазив всю сеть ухитрился проморгать пошаговую настройку убунту на слабом ноутбуке (пользуюсь Тошибой 2005 года выпуска, на Пент4 (дискретный видео), 1,7 гига с 2г озу), хотя в характеристиках пользования линукс указывается развёртывание оси на более меньшей оперативе. Если Вас не затруднит посвятить раздел собственно настройки системы на минимальных характеристиках: сама ось, браузер и минимум программ — офис, плейер, и там по мелочи, без программ требующих особых соответствий ядра и видеокарты..
С уважением. Ответить

Поставьте Debian последней версии. Если что-то будет не так с уставкой на Ваш компьютер, то будет видны все проблемы. Debian — это основа UBUNTU. UBUNTU — это производная от Debian. Debian всегда стабилен в отличие от UBUNTU, поверьте . Ответить

Не понимаю понятия легче или тяжелее. Что это значит — не понимаю!
Многие говорят, что окружение KDE — тяжёлое, о GNOME — лёгкое. Не пойму чем это утверждение обосновано? Пробовал оба окружения. Процессор тратит столько же энергии в обоих окружениях. Нагревается также одинаково. Время загрузки ОС зависит от настройки. Здесь мне вообще не понятно это утверждение. Бред какой-то! Дебиан стабилен. Убунту сделан на основе Дебиан. В Убунту многое не стабильно работает. В Дебиане, пока пакет (программу) полностью не протестируют, она не попадает в стабильную ветку дистрибутива.
Учиться работать на Linux с основой Дебиан — лучше на самом Дебиан.
Здесь, Вы разберётесь что, да как. Много поймёте для всех вопросов, которые будут возникать с другими дистрибутивами. Далее, мне так кажется, когда разберётесь — Вы станете пользоваться только Debian.
По поводу Вашего компьютера, всегда можно найти кучу информации, как на него установить полностью ОС Дебиан (Яндекс или Гугл Вам в помощь). Официальный сайт Дебиан — https://www.debian.org/
Часто задаваемые вопросы о Debian GNU/Linux — https://www.debian.org/doc/manuals/debian-faq/
Образы для установки — https://www.debian.org/CD/live/index.ru.html
Ещё есть много форумов, где Вы сможете задавать свои вопросы. Не было ни одного компьютера, на который я бы не поставил Дебиан.
Всё зависит от Вашего хотения. Может у Вас Дебиан сразу поставиться нормально. А, может придётся установить дополнительно пакеты с программами. Попробуйте этот — надеюсь проблем не будет.
Это делал я сам. — https://drive.google.com/file/d/1zAGRbCbEA2TRUx05vrvxSt8MasL6VYEA/view?usp=sharing Это же с форумов, на которые я выкладывал:
http://nnm-club.me/forum/viewtopic.php?t=1168789 Ответить

Читайте также:  Linux kernel boot parameters

—skip-grant-tables прекрасно работает из конфигурационного файла.
вот не надо делать базе kill Ответить

Статей по этому поводу очень много в интернете, пример:
http://www.amiseo.ru/unix/smena-parolya-root-v-mysql А, вот как правильно уставить пароль в Krbf для KDE, чтобы потом проблем не было с доступом — это с удовольствием посмотрел! Или, как убрать шипение микрофона в Linux при использовании PulseAudio, это когда звук пишешь. То же, хотелось бы узнать правильную информацию! Ответить

После установки MySQL 5.7.26 под управлением Ubuntu 18.04, пришло резкое понимание того, что залогиниться в mysql из-под текущего пользователя с учетной записью root не получится, никаких манипуляций с пользователями и правами провернуть не получиться. Потому что только root и только unix socket и никаких паролей.
Для успешного входа и манипуляций с mysql потребуется выполнить sudo mysql -u root или предварительно авторизоваться в системе как root и выполнить mysql -u root.
Честно говоря не вижу смысла менять способ авторизации mysql-пользователя root с сокета на пароль, создавать и вводить его, а потом этот самый пароль ещё и сбрасывать. Существующие настройки довольно безопасны: авторизация root (mysql) возможна только с localhost, прикрыть системный root по SSH (если SSH используется) тоже не проблема.
Лучше настроить дополнительных mysql-пользователей, например для использования phpmyadmin создать пользователя с таким же именем — phpmyadmin — и правами, что и у root, и авторизацией по паролю. После этого можно авторизоваться от имени любого пользователя сиcтемы, зная пароль phpmyadmin, но лучше создать каждому пользователю системы своего пользователя mysql с необходимыми правами, а еще лучше не создавать =). Ответить

В базе mysql пароли хранятся в зашифрованном виде, оператор UPDATE просто заменяет данный в таблице, то есть командой update нужно вставлять зашифрованные пароли. Ответить

Источник

How to restart MySQL with —skip-grant-tables if you can’t use the root password?

I need to restart MySQL in Ubuntu 16.04 with the —skip-grant-tables option enabled, but either I don’t know my root password or it isn’t working. How can I set —skip-grant-tables without the password? When I try it as a regular user:

mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied) 
su - mysql -s /bin/bash -c "/usr/sbin/mysqld --skip-grant-tables" Password: su: Authentication failure 
sudo su - mysql -s /bin/bash -c "/usr/sbin/mysqld --skip-grant-tables" No directory, logging in with HOME=/ 

The easiest method would be to temporarily modify /etc/init.d/mysql to include the option and then start it with this script ( /etc/init.d/mysql start )

Not so easy.. An xtrace of the start script seems to run the command from here: /bin/systemctl —no-pager stop mysql.service .. It is not running the mysqld commands in the start script. It is going to take me a while to reverse engineer mysql.service (a property file).

It did work.. I added —skip-grant-tables /lib/systemd/system/mysql.service .. Wow, I can’t imagine this getting more complicated.

2 Answers 2

When you don’t know your root password (or an error like ‘ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ prevents access) you can get access by adding the option to the MySQL config file. First open it for editing:

Читайте также:  Linux конвертировать имена файлов

Then search for [mysqld] and enter these values below it:

[mysqld] # For debugging and recovery only # skip-grant-tables skip-networking ################################### 

As you can see, the trick to adding command line parameters here is dropping the — from the front of the parameter. Now restart the mysql service and you can access your tables to reset your root user password or almost anything you need to do. (However, you can’t do anything with the grant tables because they aren’t loaded.)

Beware. While you’re in this mode, any logged-in user has access to your whole database. That’s why I added the skip-networking option above, so remote users can’t access the tables while you’re recovering.

Be sure to comment out those lines out and restart mysql once again when you’re done, to re-secure the server.

Источник

Turn off —skip-grant-tables in MySQL

I’m pretty new to using Linux but am setting up my MySQL databases on an Amazon ec2 instance. I followed some directions I found about resetting the user login pass by using the —skip-grant-tables option of MySQL. Now I am trying to add a user and can’t figure out how to turn that option off. This is what I’m trying to do:

mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON . my db username and pass 
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 

5 Answers 5

Just stop and restart MySQL normally.

You can make this done by using below steps.

[root@backups1 mysql5.7]# bin/mysqld_safe --skip-grant-tables --user=mysql 

connect to your mysql without password.

mysql> flush privileges; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ''; mysql> flush privileges; 

switch to normal mode of mysql then connect without password.

This surely will work for you.

Yesterday I’ve encountered similar issue. The server was using Amazon Linux 2 as OS and the official yum repository (the el7 ones) as the installation means.

Especially when you are using the MySQL of the official yum repo, MySQL would be installed as a systemd service. In such case, you can check how MySQL process is launched by executing following command: sudo service mysql status -l . This results in description of the current status of the current mysql service. Of those descriptions, I could find following line:

 Process: 26474 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS 

In my environment, it turned out that the MYSQLD_OPTS variable was set with value —skip-grant-tables option by the systemd process. To confirm the environment variables set by systemd, you can execute sudo systemctl show and look for line starting with Environment= .

To change this environment variable, I executed following command.

sudo systemctl set-environment MYSQLD_OPTS="" 

After this operation, I restarted the mysqld service by sudo service mysql restart , and everything was working perfectly.

Источник

Оцените статью
Adblock
detector