Ubuntu mysql установить пароль: Как изменить пароль пользователя MySQL
Содержание
Сброс root-пароля MySQL или MariaDB в Ubuntu 18.04
15 октября, 2018 12:02 пп
10 871 views
| Комментариев нет
MariaDB, mySQL, Ubuntu | Amber
| Комментировать запись
Забыть пароль может каждый. Если это случилось с вашим root-паролем от базы данных MySQL или MariaDB, вы можете получить доступ к аккаунту и сбросить пароль, если у вас есть доступ к серверу и учетная запись пользователя с привилегиями sudo.
Примечание: Обычно в новых установках Ubuntu 18.04 конфигурация MySQL или MariaDB по умолчанию позволяет вам получить доступ к базе данных (с полными правами администратора) без пароля, если подключаться с системной учетной записи root. В этом случае сбрасывать пароль не нужно. Прежде чем приступать к восстановлению root-пароля базы данных, попробуйте обратиться к базе данных с помощью команды sudo mysql. Если это приведет к ошибке access denied, приступайте к выполнению мануала.
В этом мануале вы узнаете, как сбросить root пароль базы данных MySQL и MariaDB, установленных с помощью менеджера пакетов apt в Ubuntu 18.04. Процедура изменения пароля и конфигурация systemd по умолчанию в MySQL и MariaDB отличаются. Инструкции в этом мануале могут подойти и для других версий системы и БД, но они составлены и протестированы специально для Ubuntu 18.04 и стандартных пакетов этого дистрибутива.
Требования
Для работы вам понадобится:
- Сервер Ubuntu 18.04, настроенный по этому мануалу.
- Система управления базами данных MySQL или MariaDB. Инструкции по установке можно найти в мануале Установка MySQL в Ubuntu 18.04.
1: Определение версии и остановка сервера БД
Ubuntu 18.04 использует MySQL или MariaDB, популярный форк, полностью совместимый с MySQL. В зависимости от СУБД вам придется использовать разные команды для восстановления root пароля. На данном этапе важно определить, какой сервер баз данных вы используете.
Введите такую команду:
mysql --version
Если на вашем сервере используется MariaDB, это будет указано в выводе команды вместе с версией:
mysql Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Если у вас MySQL, вы увидите:
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
Сейчас очень важно узнать, какая база данных работает на вашем сервере, так как это определяет дальнейшие ваши действия.
Чтобы изменить пароль root, вам необходимо остановить сервер базы данных. Если вы используете MariaDB, вы можете сделать это с помощью следующей команды:
sudo systemctl stop mariadb
Для MySQL введите:
sudo systemctl stop mysql
Остановив сервер БД, вы можете перезапустить его в безопасном режиме, чтобы сбросить root пароль.
2: Перезапуск сервера
Запуск MySQL и MariaDB без проверки привилегий позволяет получить доступ к командной строке базы данных с правами root без предоставления пароля. Для этого вам необходимо остановить загрузку таблиц привилегий БД, в которых хранятся данные о правах пользователя. Поскольку это немного опасно, вы также можете отключить сеть, чтобы другие клиенты не могли подключиться к временно уязвимому серверу.
Выполните один из следующих подразделов в зависимости от того, какой сервер баз данных вы используете.
Настройка MariaDB для запуска без привилегий
Чтобы запустить сервер MariaDB без привилегий, нужно использовать юнит-файл systemd для установки дополнительных параметров демонов сервера MariaDB.
Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, используемую MariaDB при запуске. Параметры -skip-grant-tables и -skip-network указывают, что MariaDB запускается без таблиц привилегий и сетевых функций:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
Теперь запустите MariaDB:
sudo systemctl start mariadb
Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых переменных.
Чтобы убедиться, что сервер запущен, введите команду:
sudo systemctl status mariadb
Теперь можно подключиться к MariaDB как пользователь root без пароля:
sudo mysql -u root
Вы увидите командную строку оболочки MariaDB:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Теперь переходите к разделу 3.
Настройка MySQL для запуска без привилегий
Чтобы запустить сервер MySQL без таблиц привилегий, нужно изменить конфигурацию systemd MySQL и передать серверу дополнительные параметры командной строки при запуске.
Для этого выполните следующую команду:
sudo systemctl edit mysql
Эта команда откроет новый файл в редакторе nano, который можно использовать для управления переопределений MySQL. Они изменяют параметры сервиса MySQL по умолчанию. Этот файл будет пустым, в него нужно вставить следующий контент:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld. pid --skip-grant-tables --skip-networking
Первый оператор ExecStart очищает значение по умолчанию, а второй предоставляет systemd новую команду запуска с параметрами для отключения загрузки таблиц привилегий и сетевых функций.
Нажмите CTRL-Х, чтобы выйти из файла, затем Y, чтобы сохранить изменения, и ENTER, чтобы подтвердить имя файла.
Перезагрузите конфигурацию systemd, чтобы применить эти изменения:
sudo systemctl daemon-reload
Запустите сервер MySQL:
sudo systemctl start mysql
Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых конфигураций.
Теперь можно подключиться к БД как пользователь root без пароля:
sudo mysql -u root
Вы увидите командную строку оболочки MySQL:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Теперь можно сбросить утраченный пароль.
3: Изменение root-пароля
Сервер базы данных теперь работает в ограниченном режиме; таблицы привилегий не загружаются, и поддержка сети отключена. Этот режим позволяет вам обращаться к серверу без предоставления пароля, но запрещает выполнять команды, которые изменяют данные. Чтобы сбросить пароль root, нужно загрузить таблицы привилегий после того, как вы получили доступ к серверу.
Чтобы перезагрузить таблицы, введите команду FLUSH PRIVILEGES.
FLUSH PRIVILEGES;
Теперь вы можете изменить root-пароль. Дальнейшие действия зависят от того, какую СУБД вы используете, MariaDB или MySQL.
Изменение пароля в MariaDB
Если вы используете MariaDB, выполните следующую команду, чтобы установить пароль учетной записи root. Вместо new_password укажите свой новый пароль, который вы запомните.
UPDATE mysql.user SET password = PASSWORD('new_password') WHERE user = 'root';
Если пароль успешно изменен, вы увидите:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB позволяет использовать пользовательские механизмы аутентификации. Введите следующие два оператора, чтобы убедиться, что MariaDB будет использовать механизм аутентификации по умолчанию для нового пароля, который вы только что присвоили учетной записи root:
UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';
UPDATE mysql.user SET plugin = '' WHERE user = 'root';
Вы увидите вывод:
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0
Пароль изменен. Введите exit, чтобы выйти из консоли MariaDB и перейдите к разделу 4, чтобы перезапустить сервер базы данных в обычном режиме.
Изменение пароля в MySQL
В MySQL выполните следующий оператор, чтобы изменить пароль пользователя root. Вместо new_password нужно указать новый надежный пароль, который вы запомните:
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE user = 'root';
Если пароль успешно изменен, вы увидите:
Query OK, 1 row affected (0. 00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL позволяет использовать пользовательские механизмы аутентификации. Введите следующий оператор, чтобы убедиться, что MySQL будет использовать механизм аутентификации по умолчанию для нового пароля, который вы только что присвоили учетной записи root:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root';
Вы увидите вывод:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Пароль изменен. Введите exit, чтобы выйти из консоли MySQL.
Теперь нужно перезапустить сервер базы данных в обычном режиме.
4: Перезапуск сервера БД в обычном режиме
Чтобы перезапустить сервер базы данных в обычном режиме, необходимо отменить сделанные в разделе 2 изменения – включить поддержку сети и восстановить загрузку таблиц привилегий. Опять же, команды в MariaDB или MySQL отличаются.
В MariaDB отключите переменную среды MYSQLD_OPTS, которую вы установили ранее:
sudo systemctl unset-environment MYSQLD_OPTS
Теперь перезапустите сервис с помощью systemctl:
sudo systemctl restart mariadb
В MySQL удалите измененные конфигурации systemd.
sudo systemctl revert mysql
Вы увидите такой вывод:
Removed /etc/systemd/system/mysql.service.d/override.conf.
Removed /etc/systemd/system/mysql.service.d.
Обновите конфигурации systemd:
sudo systemctl daemon-reload
А затем перезапустите сервис:
sudo systemctl restart mysql
Теперь БД работает в нормальном режиме. Убедитесь, что новый пароль работает:
mysql -u root -p
Команда должна запросить у вас пароль. Введите новый пароль, чтобы получить доступ к данным.
Заключение
Вы восстановили административный доступ к серверу MySQL и MariaDB. Убедитесь, что новый пароль, который вы выбрали, является достаточно надежным и безопасным, и храните его в надежном месте.
Больше дополнительной информации об управлении пользователями, механизмах аутентификации или способах сброса пароля БД в других версиях СУБД можно найти в официальной документации MySQL и MariaDB.
Tags: MariaDB, MySQL, Ubuntu, Ubuntu 18.04
Сброс пароля root MySQL или MariaDB в Ubuntu Справочник RuVDS
Введение
В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль root от MySQL или MariaDB. Отчаиваться не стоит, так как его можно сбросить, если иметь доступ к серверу и учетную запись пользователя операционной системы с привилегиями root. Данное руководство было протестировано в операционной системе Ubuntu 20.04 на двух популярных СУБД – MySQL и MariaDB.
Важно: В версии Ubuntu 20.04 дефолтная конфигурация MySQL или MariaDB позволяет получить доступ к базе данных (с правами администратора) без ввода пароля, если мы устанавливаем соединение с сервером БД под пользователем root . В этом случае нам нет необходимости сбрасывать пароль. Чтобы проверить была ли конфигурация аутентификации по умолчанию изменена, вводим команду sudo mysql. Если получаем ошибку access denied, то прибегаем к действиям, указанным с статье.
Шаг 1 – Определяем версию и останавливаем сервер базы данных.
Необходимы различные действия для сброса root пароля в зависимости от того, какая СУБД у нас установлена – MySQL или MariaDB. Для того, чтобы определить, какой сервер базы данных установлен в системе вводим:
mysql --version
Если используется MariaDB, то в выводе получим следующее: (разумеется, версия БД может меняться)
MariaDB output
mysql Ver 15.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Если MySQL:
MySQL output
mysql Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
Чтобы произвести сброс root-пароля в MySQL или MariaDB, нам необходимо остановить сервер базы данных.
Для MariaDB:
sudo systemctl stop mariadb
Для MySQL:
sudo systemctl stop mysql
После остановки базы данных производим ее перезапуск в безопасном режиме для сброса пароля root.
Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
Запуск MySQL и MariaDB в режиме –skip-grant-tables позволяет подключиться к базе данных с правами root без пароля. Поскольку это уязвимый режим работы СУБД, рекомендуется запуск сервера БД в однопользовательском режиме .
Настройка режима –skip-grant-tables для MariaDB
Зададим переменную окружения MYSQLD_OPTS, используемую в MariaDB при запуске:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
Запустим сервер БД:
sudo systemctl start mariadb
Корректность запуска сервера смотрим командой:
sudo systemctl status mariadb
Теперь подключаемся к базе данных пользователем root без пароля:
sudo mysql -u root
Подключившись к консоли MariaDB, меняем пароль root, как показано в Шаге 3 далее.
Настройка режима –skip-grant-tables для MySQL
Чтобы запустить сервер MySQL в этом режиме, изменим конфигурацию systemd для MySQL, чтобы при запуске сервер запустился с дополнительными параметрами.
sudo systemctl edit mysql
После выполнения команды будет открыт новый файл в nano-редакторе, где мы будем внесем необходимые параметры запуска сервера MySQL. Изначально файл будет пустым. Добавим следующие строки:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Нажимаем CTRL-X, чтобы выйти из файла, затем – Y, чтобы сохранить внесенные изменения. Перезагружаем systemd, чтобы перечитать изменения:
sudo systemctl daemon-reload
Запускаем сервер MySQL:
sudo systemctl start mysql
и подключаемся пользователем root:
sudo mysql -u root
Далее переходим к Шагу 3.
Шаг 3 – Изменение пароля root
Поскольку СУБД запущена в режиме –skip-grant-tables, мы имеем возможность получить доступ к серверу баз данных без пароля, но не можем выполнять запросы на изменением данных. Чтобы установить пароль root , нам необходимо перезагрузить таблицы предоставления привилегий, выполнив инструкцию:
FLUSH PRIVILEGES;
Теперь сброс пароля root в MySQL или MariaDB возможен .
Меняем пароль root для MariaDB
Используем запрос:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
В строке ‘new_password’ указываем свой пароль.
Output
Query OK, 0 rows affected (0.001 sec)
Далее установим механизм аутентификации по умолчанию:
UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';
UPDATE mysql.user SET plugin = '' WHERE user = 'root';
Пароль изменен. Выходим из консоли MariaDB и смотрим Шаг 4 для перезапуска сервера базы данных в штатном режиме.
Меняем пароль root для MySQL
Для MySQL выполняем следующий запрос, заменив new_password на свой пароль. MySQL позволяет использовать настраиваемые механизмы аутентификации, поэтому добавляем инструкцию, указывающую MySQL использовать механизм аутентификации по умолчанию:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password';
Output
Query OK, 0 rows affected (0.01 sec)
Выходим из консоли MySQL и запускаем базу данных в нормальном режиме.
Шаг 4 – Запускаем сервер базы данных в штатном режиме.
Чтобы перезапустить сервер базы данных в штатном режиме, выполним следующие действия:
Для MariaDB
Удаляем переменную окружения MYSQLD_OPTS:
sudo systemctl unset-environment MYSQLD_OPTS
и перезапускаем сервер MariaDB:
sudo systemctl restart mariadb
Для MySQL
Удаляем все изменения конфигурации демона systemd для MySQL:
sudo systemctl revert mysql
Вывод должен быть примерно таким:
Output
Removed /etc/systemd/system/mysql.service.d/override.conf.
emoved /etc/systemd/system/mysql.service.d.
Затем перезагружаем демон systemd:
sudo systemctl daemon-reload
и сервер MySQL:
sudo systemctl restart mysql
После этого база данных должна перейти в нормальное состояние. Пробуем подключится к серверу базы данных пользователем root с новым паролем:
mysql -u root -p
Успех! Не забывайте пароли=)
Как изменить корневой пароль MySQL в Ubuntu 20.
04
Пароли трудно запомнить, поэтому, если вы забыли корневой пароль MySQL, к счастью, есть способ его изменить. Этот пост был написан для вас, и к концу этого поста вы успешно поменяете пароль MySQL.
Прежде чем перейти непосредственно к решению, предполагается, что вы используете последнюю версию базы данных MySQL в системе Ubuntu 20.04 LTS. В этом посте будет пошаговое руководство по изменению корневого пароля MySQL в Ubuntu 20.04. Итак, не теряя времени, приступим.
Шаг 1: Проверьте версию MySQL в Ubuntu 20.04
Прежде всего, проверьте версию вашего MySQL, потому что этот пост содержит решение по изменению пароля root в версии 8 или выше. Если версия вашего MySQL ниже 8, то решение будет другим. Команда для проверки версии MySQL приведена ниже:
$ mysql —version
Шаг 2: Остановите сервер MySQL
Чтобы изменить корневой пароль MySQL, вам сначала нужно выключить сервер MySQL и вы можете сделать это с помощью команды:
$ sudo systemctl stop mysql. service
Проверьте состояние сервера MySQL, чтобы проверить его с помощью команды:
$ sudo systemctl status mysql.service
Шаг 3: Пропустить таблицы грантов и сеть
Для начала сервер MySQL без предоставления таблиц и проверки сети, установите переменную среды « MYSQLD_OPTS », которую MySQL использует при запуске:
$ sudo systemctl set-environment MYSQLD_OPTS=»—skip-networking —skip-grant-tables»
Хорошо, переменная среды установлена, и мы можем войти в оболочку MySQL без ввода пароля.
Шаг 4: Запустите службу MySQL
После установки переменной среды «MYSQLD_OPTS» запустите службу MySQL с помощью команды:
$ sudo systemctl start mysql.service
Шаг 5: Подтвердите состояние MySQL Server
Подтвердите статус службы MySQL, независимо от того, запущена она или нет:
$ sudo systemctl status mysql.service
Шаг 6: Войдите в оболочку MySQL
Теперь вам нужно войти в систему как пользователь root на сервере MySQL, а для входа в оболочку MySQL введите команду :
$ sudo mysql -u root
Без ввода пароля вы войдете в оболочку MySQL.
Шаг 7: Измените пароль root
Теперь сначала сбросьте привилегии:
mysql> сброс привилегий;
Выберите базу данных MySQL:
mysql> USE mysql
И установите новый пароль для пользователя root с помощью команды ALTER , введя следующую инструкцию:
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘новый-пароль’;
Вместо « новый пароль » введите новый пароль. После успешной смены корневого пароля MySQL выйдите из оболочки MySQL:
mysql> quit;
Шаг 8: Вернуть сервер базы данных к обычным настройкам
Для перезапуска сервера базы данных в режиме « нормальный » необходимо « вернуть » изменения, которые мы сделали, чтобы сеть была включена и предоставлялись таблицы загружены.
Для этого сначала отключите переменную среды « MYSQLD_OPTS », которую вы установили ранее:
$ sudo systemctl unset-environment MYSQLD_OPTS
После этого удалите измененную конфигурацию системы, вернув « MySQL ”:
$ sudo SystemCtl revert MySQL
Шаг 9: Убейте все процессы MySQL и перезапустите сервис MySQL
Теперь убейте все процессы MySQL перед перезапуском MySQL Server:
$ Sudo. u mysql
После вывода, как показано на рисунке, нажмите « Enter » и перезапустите сервер MySQL с помощью команды, приведенной ниже:
$ sudo systemctl restart mysql.service
Шаг 10: Войдите в систему с новым паролем
Войдите в оболочку MySQL с новым паролем:
$ sudo mysql -u root -p
Укажите недавно установленный пароль в команде ALTER :
Вот оно. Корневой пароль MySQL успешно изменен, и вы снова вошли в оболочку MySQL.
Подведение итогов
В этом пошаговом руководстве вы научились изменять пароль root MySQL в системе Ubuntu 20.04 LTS. Этот пост содержит подробное и простое для понимания решение по сбросу пароля root MySQL в Ubuntu 20.04.
Пароль по умолчанию для mysql на сервере Ubuntu 16.04
спросил
Изменено
1 год, 3 месяца назад
Просмотрено
199 тысяч раз
Я установил сервер Ubuntu 16. 04. В нем по умолчанию установлен сервер Mysql. Когда я пытаюсь получить доступ к mysql с помощью mysql -u root -p
, я не могу войти в mysql, потому что у меня нет пароля. Есть ли пароль по умолчанию?
Я также пробовал с --skip-grant-tables
, даже это не работает. Даже попытка войти в систему только с mysql -u root
не удалась.
- mysql
- ubuntu
- пароли
- ubuntu-16.04
- ubuntu-сервер
4
Это то, что вы ищете:
sudo mysql --defaults-file=/etc/mysql/debian.cnf
MySql в Linux на основе Debian обычно использует файл конфигурации с учетными данными.
0
У меня была новая установка mysql-server
на Ubuntu 18.10, и я не мог войти в систему с паролем по умолчанию. Только тогда я узнал, что по умолчанию пользователь root аутентифицируется с использованием auth_socket
. Так как в ответе когда плагин сменился на mysql_native_password
, мы можем использовать пароль mysql по умолчанию
$ sudo apt install mysql-server $ sudo cat /etc/mysql/debian.cnf
Там вы можете найти следующие строки
user = debian-sys-maint пароль = пароль_для_пользователя
Затем:
$ mysql -u debian-sys-maint -p Введите пароль:
введите пароль от debian.cnf
mysql> USE mysql mysql> ВЫБРАТЬ пользователя, хост, плагин ИЗ mysql.user; +------------------+------------+------------------ -----+ | Пользователь | Хост | плагин | +------------------+------------+------------------ -----+ | корень | локальный | авторизация_сокет | | mysql.сессия | локальный | mysql_native_password | | mysql.sys | локальный | mysql_native_password | | debian-sys-maint | локальный | mysql_native_password | +------------------+------------+------------------ -----+ 4 ряда в сете (0,00 сек) mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> СОВЕРШИТЬ;
Либо:
mysql> ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost' ИДЕНТИФИКАЦИЯ 'new_password';
Или:
// Для MySQL 5. 7+
mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') где user='root';
—Обновление—
Иногда вам потребуется перезапустить сервер mysql.
перезапуск службы sudo mysql
или
sudo systemctl перезапустить mysql
2
Mysql по умолчанию имеет подключаемый модуль аутентификации пользователя root как auth_socket
, что требует, чтобы имя системного пользователя и имя пользователя базы данных совпадали.
В частности, войдите в систему как root или sudo -i
и просто введите mysql
, и вы войдете в систему как mysql root
, затем вы сможете создать других операционных пользователей.
Если у вас нет root на хосте, я думаю, вам не следует разрешать вход в mysql как root?
0
Хотя это старый вопрос, некоторые из нас все еще пытаются найти ответ. По крайней мере, я сделал. Пожалуйста, не следуйте всем длинным решениям . Вы можете просто войти в свой mysql как root без ввода пароля (при условии, что это новая установка или вы не меняли пароль с момента установки), добавив sudo перед вашей командой mysql.
$sudo mysql -uroot -p
mysql>
Это связано с тем, что mysql изменил модель безопасности в одной из последних версий.
Надеюсь, это поможет
0
Вы можете просто сбросить пароль root, запустив сервер с параметром —skip-grant-tables и войдя в систему без пароля, выполнив следующую команду от имени пользователя root или с помощью sudo:
service mysql stop mysqld_safe --skip-grant-tables & mysql -u корень mysql> использовать mysql; mysql> обновить пользовательский набор authentication_string=PASSWORD("ВАШ-НОВЫЙ-ROOT-ПАРОЛЬ"), где User='root'; mysql> сброс привилегий; mysql> выйти # остановка службы mysql # запуск службы mysql $ mysql -u корень -p
2
Обратите внимание, что в системах Ubuntu, работающих под управлением MySQL 5. 7 (и более поздних версий), пользователь root MySQL по умолчанию настроен на аутентификацию с использованием подключаемого модуля auth_socket, а не с помощью пароля. вам нужно будет переключить его метод аутентификации с auth_socket на mysql_native_password
, как сказал @BeNiza, они изменили модель безопасности. Я сделал следующие шаги, и он работает для mysql 5.7.27 на Ubuntu 18.04
sudo apt install mysql-server
Программное обеспечение базы данных MySQL установлено, но его настройка еще не завершена.
Для обеспечения безопасности установки MySQL поставляется со сценарием, который спросит, хотим ли мы изменить некоторые небезопасные значения по умолчанию. Запустите сценарий, набрав:
sudo mysql_secure_installation
, вы должны нажать Y и нажимать клавишу ENTER при каждом запросе.
Это вызовет проблемы, если вы используете слабый пароль
Вы можете просто войти в свой mysql как root без ввода пароля, добавив sudo перед вашей командой mysql.
sudo mysql
mysql> ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost', ИДЕНТИФИЦИРОВАННОГО С помощью mysql_native_password BY 'your-password';
Если вы установите слабый пароль, вы увидите следующую ошибку:
ОШИБКА 1819 (HY000): Ваш пароль не соответствует требованиям текущей политики
mysql> FLUSH PRIVILEGES;
mysql> выход
Примечание. После настройки корневого пользователя MySQL для аутентификации с помощью пароля вы больше не сможете получить доступ к MySQL с помощью ранее использовавшейся команды sudo mysql. Вместо этого вы должны запустить следующее:
mysql -u корень -p
После ввода только что установленного пароля вы увидите приглашение MySQL.
0
Редактировать:
Вы можете войти под пользователем debian-sys-maint
, у которого есть все ожидаемые привилегии, пароль находится в файле /etc/mysql/debian. cnf
Исходный ответ:
Начиная с Ubuntu 20.04 с MySql 8.0 : функция ПАРОЛЬ
больше не существует, поэтому правильный путь:
войти в mysql с помощью
sudo mysql -u root
изменить пароль:
ИСПОЛЬЗОВАТЬ mysql; ОБНОВЛЕНИЕ пользовательского набора authentication_string=NULL, где User='root'; FLUSH-привилегии; ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost', ИДЕНТИФИЦИРОВАННОГО С caching_sha2_password BY 'My-N7w_And.5ecure-P@s5w0rd'; FLUSH-привилегии; ПОКИДАТЬ
теперь вы сможете войти в систему с помощью mysql -u root -p
(или в phpMyAdmin с именем пользователя root) и выбранным вами паролем.
0
У меня сработал единственный вариант, описанный в этой ссылке.
В итоге (на случай, если сайт выйдет из строя) написано:
Для установки MySQL:
судо подходящее обновление sudo apt установить mysql-сервер
В следующем запросе вам будет предложено установить пароль для пользователя root MySQL. Как только вы это сделаете, скрипт также попросит вас удалить анонимного пользователя, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных. Вы должны ответить «Y» (да) на все вопросы.
судо mysql_secure_installation
Затем
судо mysql ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost', ИДЕНТИФИЦИРОВАННОГО С mysql_native_password BY 'very_strong_password'; ПОЛНЫЕ ПРИВИЛЕГИИ;
После этого можно выйти:
выход
Теперь вы можете легко войти в систему с помощью (не забудьте ввести свой very_strong_password ):
mysql -u root -p # введите пароль сейчас.
Это был единственный вариант, который сработал для меня после многих часов, когда я пробовал варианты, описанные выше.
В последней версии MySQL использует auth_socket
, поэтому для входа в систему вы должны знать об автоматически сгенерированных учетных данных пользователя. или, если вы загружаете бинарную версию, в процессе установки вы можете выбрать устаревший пароль
.
Для установки SQL в версиях linux debian
sudo apt install mysql-server
узнать о пароле
sudo cat /etc/mysql/debian.cnf
Теперь войдите в систему
mysql -u debian-sys-maint -p
используйте пароль из debian.cnf
Как просмотреть доступные записи пользователей:
USE mysql ВЫБЕРИТЕ пользователя, хост, плагин ИЗ mysql.user;
Теперь вы можете создать нового пользователя. Используйте следующие команды:
use mysql; СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ «имя пользователя» @ «localhost» ИДЕНТИФИКАЦИЯ «паролем»; GRANT ALL ON *.* TO 'username'@'localhost'; сброс привилегий;
Чтобы перечислить гранты для конкретного пользователя mysql
SHOW GRANTS FOR 'username'@'localhost';
Как отозвать все гранты для конкретного пользователя mysql
ОТЗЫВАТЬ ВСЕ ПРИВИЛЕГИИ, ПРЕДОСТАВИТЬ ОПЦИЮ ОТ 'username'@'localhost';
Чтобы удалить/удалить определенного пользователя из списка учетных записей пользователей
DROP USER 'username'@'localhost';
Дополнительные команды:
$ man 1 mysql
Пожалуйста, не сбрасывайте пароль для root, вместо этого создайте нового пользователя и предоставьте права. Это лучшая практика.
0
- Использовать
sudo mysql -u root -p
, он позволяет вам войти с любым паролем, если нет, используйтеsudo mysql
. - Если вы успешно входите в консоль, сделайте следующее.
Удалить пользователя root.
УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost';
Создайте его снова.
СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost' ИДЕНТИФИКАЦИЯ ПО 'паролю';
Дайте разрешение.
ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА *.* 'root'@'localhost' С ОПЦИЕЙ ПРЕДОСТАВЛЕНИЯ; ПОЛНЫЕ ПРИВИЛЕГИИ;
Перезапустите службу mysql.
перезапуск службы mysql
Если вы по-прежнему не можете войти в консоль, вам необходимо переустановить пакет mysql.
sudo apt-get remove --purge mysql-server mysql-client mysql-common -y sudo apt-get autoremove -y sudo apt-получить автоочистку судо рм -рф /etc/mysql
Удалите все файлы MySQL на вашем сервере:
sudo find / -iname 'mysql*' -exec rm -rf {} \;
Установить mysql.
sudo подходящее обновление sudo apt установить mysql-сервер
Выполнить установку.
судо mysql_secure_installation
- Я сделал то же самое, когда у меня возникла эта проблема, надеюсь, это поможет!
Начиная с Ubuntu 20.04 , используя пакет MariaDB 10.3 по умолчанию, это были необходимые шаги (ремикс более ранних ответов из этой темы):
- Войдите в mysql как root:
sudo mysql -u root
- Обновите пароль:
ИСПОЛЬЗОВАТЬ mysql; ОБНОВЛЕНИЕ пользовательского набора authentication_string = ПАРОЛЬ ("ВАШ-НОВЫЙ-КОРНЕВОЙ-ПАРОЛЬ"), где Пользователь = 'root'; ОБНОВЛЕНИЕ пользовательского набора plugin="mysql_native_password", где User='root'; FLUSH-привилегии; ПОКИДАТЬ
-
перезапуск службы sudo mysql
После этого вы можете подключиться к локальному серверу MySQL с новым паролем: mysql -u root -p
0
- первым вы должны остановить mysql
- используйте эту команду
sudo mysqld_safe --skip-grant-tables --skip-networking &
- , а затем введите
mysql -u root
попробуйте этот способ, я решил свою проблему с помощью этого метода.
2
Я думаю, что еще одно место для поиска — /var/lib
.
Если вы пойдете туда, вы увидите три папки mysql с «интересными» разрешениями:
группа пользователей mysql
Вот что я сделал, чтобы решить проблему с паролем root:
после запуска
sudo apt-get purge mysql* судо рм -рф /etc/mysql
Я также выполнил следующее (вместо my_username поставьте свое):
cd /var/lib sudo chown --from=mysqlmysql* -R sudo rm -rf mysql*
А затем:
sudo apt-get install mysql-server
, что побудило меня выбрать новый пароль root.
Надеюсь поможет
4
это сработало для меня в Ubuntu 20.04 с mysql 8, странное хеширование связано с тем, что родная функция PASSWORD() была удалена в mysql 8 (или ранее?)
UPDATE mysql.user SET плагин = 'mysql_native_password', Хост = '%', authentication_string = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('вставьте здесь пароль'))))) ГДЕ Пользователь = 'корень'; ПОЛНЫЕ ПРИВИЛЕГИИ;
0
Следование дало мне кредит для недавно установленного mysql
sudo cat /etc/mysql/debian. cnf
Я попытался подключиться к workbench, и у меня получилось установить workbench
sudo apt-get install mysql-workbench
Просто запустите sudo dpkg-reconfigure mysql-server-5.7
Вы можете найти установленную версию, запустив dpkg --get-selections | grep mysql-сервер
1
В ранних версиях пароль root мог быть пустым, но в более новых версиях паролем root был установлен пароль администратора (основного) пользователя во время установки.
Если вы устанавливаете mysql с помощью , apt установите mysql
.
вы можете просто войти в свой mysql с помощью sudo mysql
.
Для новой установки пароль mysql для root
генерируется и записывается в журналы /var/log/mysqld.log
.
Если вы пытаетесь автоматизировать решение mysql, вы можете использовать пароль из переменной:
mysql_pass=$(sudo grep -oP "для root@localhost генерируется временный пароль: \K(.