- How to change the mysql root password
- 10 Answers 10
- Сброс пароля root в MySQL на Ubuntu
- Требования для сброса пароля
- Сброс пароля root
- План сброса
- Определение версии MySQL
- Остановка сервера
- Отключение привилегий MySQL сервера
- Изменение пароля root пользователя MySQL
- Изменение пароля для MySQL 5.7.6 и новее
- Изменения пароля на MySQL 5.7.5 и позднее
- Завершение
- Восстановление привилегий и запуск сервера MySQL
- Проверка нового пароля
- Как изменить пароль пользователя на новых версиях MySQL
- Как изменить пароль пользователя MySQL
- Подготовка
- Как изменить пароль пользователя MySQL
- 1. Войдите в оболочку MySQL как root.
- 2. Установите пароль пользователя MySQL.
- 3. Подтвердите новый пароль.
- Выводы
How to change the mysql root password
I have installed MySQL server 5 on redhat linux. I can’t login as root so I can’t change the root password.
mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysqladmin -u root password 'newpass'
mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
/sbin/service mysqld start --skip-grant-tables
mysql> UPDATE mysql.user SET Password=PASSWORD('newpass') -> WHERE User='root'; ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user'
I even uninstalled mysql-server (using yum) and then reinstalled it but that did not help. How do I force reset the root password?
10 Answers 10
One option is to save UPDATE mysql.user SET Password=PASSWORD(‘newpass’) WHERE User=’root’; into a file and then manually start mysqld with —init-file=FILENAME . Once the server starts, it should reset your password, and then you should be able to log in. After this, you should shut down the server and start it normally.
Good lord, why would someone give a -1 to the only solution I found to be working. An init sql file was the only way I could overwrite the mysql root user password and be able to use it. It is a shame you need to fallback to such operations on a freshly installed software, yet it is good to have a reliable workaround.
A little late to the game, but I had the same issue on a raspberry pi install and found out that it needs elevation. Adding a sudo to the front of the password change allowed it to work.
sudo mysqladmin -u root password 'newpass'
followed by an elevated sql access
If either are not run as sudo, it will fail.
The root user password is an empty string by default.
And (using password: NO) says that there is no password.
Do you try to login from another system? I imagine you can only login as root user locally.
I am not sure, but I don’t think so. Unfortunately I never used redhat. EDIT: But why don’t you just try it?
Note that if you want to try logging in with no password, you should just avoid specifying -p on the command line altogether.
Note: The root password may not by blank by default, now (just found this out). I installed MySQL 5.7.16 from a yum repository and found that the installer had created a temporary password that was stored in a plain text file 😛 (for yum this was /var/log/mysqld.log)
I removed the MySQL installation and deleted the data files, and then reinstalled it.
Then I was able to set the root password. Once you set the root password to something. mysqladmin won’t let you reset it if you don’t know it.
To reset it, you’ve got to have ownership over how mysqld is executed, and feed it an init file to change the root password: https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
This helped me on Windows with MySQL Server 5.6. Make sure you change the mysqld path to point to where you have installed MySql Server, for me it was «C:\Program Files\mysql\MySQL Server 5.6\bin\mysqld.exe» :
- Log on to your system as Administrator.
- Stop the MySQL server if it is running. For a server that is running as a Windows service, go to the Services manager: From the Start menu, select Control Panel, then Administrative Tools, then Services. Find the MySQL service in the list and stop it. If your server is not running as a service, you may need to use the Task Manager to force it to stop.
- Create a text file containing the following statements. Replace the password with the password that you want to use.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
C:\> C:\mysql\bin\mysqld --init-file=C:\\mysql-init.txt
If you installed MySQL to a location other than C:\mysql, adjust the command accordingly. The server executes the contents of the file named by the —init-file option at startup, changing each root account password. You can also add the —console option to the command if you want server output to appear in the console window rather than in a log file. If you installed MySQL using the MySQL Installation Wizard, you may need to specify a —defaults-file option:
C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini" --init-file=C:\\mysql-init.txt
Сброс пароля root в MySQL на Ubuntu
Сбросить пароль root пользователю базы данных MySQL может потребоваться в случае, если потерян доступ к системе управления базами данных.
Требования для сброса пароля
- Локальный доступ или подключение по SSH к серверу на Ubuntu Linux.
- Предустановленная система СУБД MySQL с отсутствующим доступом.
Сброс пароля root
План сброса
Определение версии MySQL
Стоит сразу определить установленную версию MySQL, поскольку на разных версиях программы, команды, в дальнейшем, могут отличаться.
Для определения версии MySQL в терминале достаточно ввести команду:
Должен появится похожий вывод:
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
Строку можно сохранить в текстовом документе, чтобы не забыть версию MySQL.
Остановка сервера
Для отключения привилегий нужно остановить сервер MySQL, введя в терминале команду:
sudo systemctl stop mysql
После выполнения команды процесс сервера MySQL будет приостановлен.
Отключение привилегий MySQL сервера
Отключение привилегий СУБД – исключение из процесса загрузки Grant-таблиц, которые хранят данные для авторизации пользователей (пароли и логины). Это позволит выполнить вход в MySQL без авторизации и восстановить пароль root по умолчанию.
Для начала создаётся конфигурационный файл, который изменяет параметры запуска MySQL. Для этого нужно ввести в терминале команду:
sudo systemctl edit mysql
В созданный текстовой файл нужно внести следующие строки, которые ограничат загрузку Grant-таблиц и запретят выход в сеть (для обеспечения безопасности):
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking
Для сохранения изменений в файле нужно нажать «CTRL+X», потом «Y» и подтвердить изменения нажатием «Enter».
Для применения изменений в процессе загрузки MySQL, нужно обновить конфигурацию Systemd командой:
sudo systemctl daemon-reload
Остаётся запустить сервер MySQL с отключенными привилегиями. Для этого в терминале вводится команда:
sudo systemctl start mysql
Изменение пароля root пользователя MySQL
Таблицы привилегий отключены и ничего не мешает выполнить вход в консоль MySQL от имени root пользователя без авторизации.
Для выполнения входа в консоль MySQL нужно ввести команду:
Авторизация должна пройти без введения пароля.
Для того чтобы сменить пароль пользователя root, нужно загрузить Grant-таблицы, введя команду в терминал MySQL:
Изменение пароля для MySQL 5.7.6 и новее
Смена пароля root пользователя в консоли MySQL выполняется последовательным введением следующих команд:
UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD') WHERE User = 'root'; FLUSH PRIVILEGES;
Вместо «MY_NEW_PASSWORD» вводится собственный пароль. Не стоит забывать о безопасности и ставить лёгкие пароли, так как это сыграет на руку злоумышленникам.
Изменения пароля на MySQL 5.7.5 и позднее
Нужно последовательно ввести следующие команды:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD'); FLUSH PRIVILEGES;
В поле «MY_NEW_PASSWORD» вводится собственный пароль.
Завершение
В случае успеха, в обоих случаях, будет получен следующий вывод:
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Восстановление привилегий и запуск сервера MySQL
После изменения пароля необходимо восстановить параметры загрузки сервера MySQL, удалив конфигурацию Systemd. Для этого в терминале последовательно вводятся команды:
sudo systemctl revert mysql sudo systemctl daemon-reload
Далее необходимо перезапустить сервер MySQL со стандартными параметрами. Перезагрузка выполняется следующей командой:
sudo systemctl restart mysql
Проверка нового пароля
Проверить новый пароль можно, выполнив вход в консоль MySQL от имени root пользователя:
Как изменить пароль пользователя на новых версиях MySQL
В последних выпусках MySQL была добавлена возможность входа без пароля, если системная учётная запись имеет root доступ.
Чтобы узнать пароль на новых версиях, достаточно в терминале ввести команду, которая запустит MySQL с правами администратора:
При получении ошибки «access denied» стоит переходить к описанному выше способу – «Сброс пароля root».
Если доступ к консоли получен успешно получен, можно выполнить сброс пароля root в Ubuntu для MySQL, последовательно вводя следующие команды:
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE user = 'root';
В поле «new_password» вводится новый пароль для пользователя root.
Для применения изменений нужно перезагрузить таблицы привилегий следующей командой:
В случае успеха будет получен следующий вывод:
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Надежный хостинг для сайта. 14 дней — бесплатно!
Как изменить пароль пользователя MySQL
В этом руководстве мы покажем вам, как изменить пароль пользователя MySQL. Инструкции должны работать с любым современным дистрибутивом Linux, таким как Ubuntu 18.04 и CentOS 7.
Подготовка
В зависимости от версии сервера MySQL или MariaDB, которую вы используете в своей системе, вам нужно будет использовать разные команды для изменения пароля пользователя.
Чтобы узнать версию сервера базы данных, введите следующую команду:
Если в вашей системе установлен MySQL, результат будет выглядеть примерно так:
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
Или выведите такой вывод для MariaDB:
mysql Ver 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Обязательно отметьте, какую версию MySQL или MariaDB вы используете. Если вы хотите получить список всех учетных записей пользователей MySQL, ознакомьтесь с этим руководством.
Как изменить пароль пользователя MySQL
Выполните следующие действия, чтобы изменить пароль пользователя MySQL:
1. Войдите в оболочку MySQL как root.
Войдите в оболочку MySQL, набрав следующую команду и при появлении запроса введите пароль root-пользователя MySQL:
Если вы не установили пароль для пользователя root MySQL, вы можете войти в систему с помощью sudo mysql .
2. Установите пароль пользователя MySQL.
ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string = PASSWORD('NEW_USER_PASSWORD')
WHERE User = 'user-name' AND Host = 'localhost';
FLUSH PRIVILEGES;
SET PASSWORD FOR 'user-name'@'localhost' = PASSWORD('NEW_USER_PASSWORD');
FLUSH PRIVILEGES;
Убедитесь, что вы изменили user-name на имя пользователя, для которого хотите изменить пароль. Если пользователь подключается к серверу MySQL с другого хоста, измените localhost на удаленное имя хоста или IP-адрес.
В обоих случаях, если все пойдет хорошо, вы увидите следующий результат:
Query OK, 0 rows affected (0.00 sec)
Выйдите из командной строки MySQL, выполнив:
3. Подтвердите новый пароль.
Чтобы убедиться, что новый пароль применен правильно, введите:
mysql -u user-name -h localhost -p
Вам будет предложено ввести новый пароль пользователя. Введите его, и вы войдете на свой сервер MySQL.
Выводы
В этом руководстве вы узнали, как изменить пароль пользователя MySQL или MariaDB. Убедитесь, что новый пароль надежный и надежный, и храните его в надежном месте.
Чтобы узнать больше о том, как использовать оболочку MySQL для выполнения различных административных операций, вы можете ознакомиться с нашим руководством по управлению учетными записями пользователей и базами данных MySQL .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.