Как изменить пароль и имя пользователя root MySQL на сервере Ubuntu? Нужно ли останавливать службу mysql перед настройкой каких-либо изменений?
У меня также есть настройка phpmyadmin, будет ли phpmyadmin обновляться автоматически?
Как изменить пароль и имя пользователя root MySQL на сервере Ubuntu? Нужно ли останавливать службу mysql перед настройкой каких-либо изменений?
У меня также есть настройка phpmyadmin, будет ли phpmyadmin обновляться автоматически?
Ответы:
Установите / измените / сбросьте пароль root для MySQL в Ubuntu Linux. Введите следующие строки в вашем терминале.
sudo /etc/init.d/mysql stop
Запустите mysqld
настройку:sudo mysqld --skip-grant-tables &
В некоторых случаях вам нужно создать /var/run/mysqld
первое:
sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
sudo service mysql start
mysql -u root mysql
Замените YOURNEWPASSWORD
на новый пароль:
UPDATE
mysql.user
SET
Password = PASSWORD('YOURNEWPASSWORD')
WHERE
User = 'root';
FLUSH PRIVILEGES;
exit;
Примечание: в некоторых версиях, если
password
столбец не существует, вы можете попробовать:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';
Примечание. Этот метод не считается наиболее безопасным способом сброса пароля, однако он работает.
Ссылки:
sudo killall -9 mysqld
? а затем sudo service mysql start
перезапустить нормального демона ...
mkdir /var/run/mysqld
и chown mysql: /var/run/mysqld
между шагами 1 и 2
Единственный метод, который работал для меня, это описанный здесь (я использую Ubuntu 14.04). Для ясности, я следовал следующим шагам:
sudo vim /etc/mysql/my.cnf
Добавьте следующие строки в конце:
[ТуздЫ] пропуск грантовый столов
sudo service mysql restart
mysql -u root
use mysql
select * from mysql.user where user = 'root';
- Посмотрите сверху, чтобы определить, называется ли столбец
пароля паролем или authentication_string
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- Используйте правильный столбец пароля сверху
FLUSH PRIVILEGES;
exit
sudo vim /etc/mysql/my.cnf
Удалите строки, добавленные на шаге 2, если вы хотите сохранить свои стандарты безопасности.
sudo service mysql restart
Для справки: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Официальный и простой способ сбросить пароль root на сервере Ubuntu ...
Если вы на 16.04, 14.04, 12.04:
sudo dpkg-reconfigure mysql-server-5.5
Если вы на 10.04:
sudo dpkg-reconfigure mysql-server-5.1
Если вы не уверены, какая версия mysql-сервера установлена, вы можете попробовать:
dpkg --get-selections | grep mysql-server
Обновлены заметки для mysql-server-5.7
Обратите внимание, что если вы используете mysql-server-5.7, вы не можете использовать более простой метод dpkg-reconfigure, показанный выше.
Если вы знаете пароль, войдите и запустите это:
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;
В качестве альтернативы вы можете использовать следующее:
sudo mysql_secure_installation
Это задаст вам ряд вопросов о безопасности вашей установки (настоятельно рекомендуется), в том числе, если вы хотите предоставить новый пароль root.
Если вы НЕ знаете пароль root, обратитесь к этой Ubuntu-ориентированной записи процесса .
Смотрите для получения дополнительной информации:
https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html
Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
sudo dpkg-reconfigure mysql-server-5.0
sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
Что сработало для меня (Ubuntu 16.04, mysql 5.7):
Стоп MySQL
sudo service mysql stop
Сделать сервисный каталог MySQL.
sudo mkdir /var/run/mysqld
Дайте пользователю MySQL разрешение на запись в каталог службы.
sudo chown mysql: /var/run/mysqld
Запустите MySQL вручную, без проверки разрешений или работы в сети.
sudo mysqld_safe --skip-grant-tables --skip-networking &
На другой консоли войдите без пароля.
mysql -uroot mysql
Затем:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;
Отключи MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Запустите службу MySQL в обычном режиме.
sudo service mysql start
Я делюсь пошаговым финальным решением для сброса пароля MySQL в Linux Ubuntu.
Ссылка взята из блога (dbrnd.com)
Шаг 1: остановите службу MySQL.
sudo stop mysql
Шаг 2: убить всех работающих mysqld.
sudo killall -9 mysqld
Шаг 3: Запуск mysqld в безопасном режиме.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Шаг 4: Запустите клиент MySQL
mysql -u root
Шаг 5: После успешного входа в систему, пожалуйста, выполните эту команду, чтобы изменить любой пароль.
FLUSH PRIVILEGES;
Шаг 6: Вы можете обновить пароль root для mysql.
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Примечание . В MySQL 5.7 Password
вызывается столбец authentication_string
.
Шаг 7: Пожалуйста, выполните эту команду.
FLUSH PRIVILEGES;
Я столкнулся с проблемами с Ubuntu 18.04 и MySQL 5.7, это решение
Попробуйте перезапустить mysql-сервер перед выполнением команды
sudo service mysql restart
MYSQL-SERVER> = 5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-СЕРВЕР <5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-SERVER >= 5.7
версия была единственной вещью, которая действительно решила проблему
MYSQL-SERVER >= 5.7
версия будет точной.
Измените корневой пароль MySQL.
Этот метод предоставляет пароль для истории командной строки, эти команды должны выполняться от имени пользователя root.
Войдите через инструмент командной строки mysql:
mysql -uroot -poldpassword
Запустите эту команду:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
или
Запустите эту команду, которая устанавливает пароль для текущего пользователя (в данном случае «root»):
SET PASSWORD = PASSWORD («новый пароль»);
Сначала запустите эту команду:
sudo mysql
и затем вы должны проверить, какой метод аутентификации используется в ваших учетных записях пользователей MySQL.
SELECT user,authentication_string,plugin,host FROM mysql.user;
теперь вы можете увидеть что-то вроде этого:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
В приведенной выше таблице вы можете видеть, что все ваши учетные записи пользователей mysql имеют статус и если вы установили пароль для учетной записи root, прежде чем вы увидите mysql_native_password
вместо этого в столбце плагина auth_socket
. В общем, для изменения пароля пользователя root необходимо выполнить:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Обязательно смените пароль на надежный пароль по вашему выбору. Затем для перезагрузки вашего сервера, чтобы применить ваши новые изменения, запустите это;
FLUSH PRIVILEGES;
Итак, еще раз проверьте методы аутентификации, которые использует ваш mysql, с помощью этой команды:
SELECT user,authentication_string,plugin,host FROM mysql.user;
и теперь вывод:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
как вы можете видеть в таблице привилегий, которую имеет ваша корневая учетная запись mysql_native_password
. теперь вы можете выйти из оболочки MYSQL
exit;
Вот и все. Просто вы должны перезапустить MySQL sudo service mysql restart
. Теперь вы можете легко войти в MySQL под учетной записью root.
Если вы хотите изменить корневой пароль MySQL, введите в терминале:
sudo dpkg-reconfigure mysql-server-5.5
Демон MySQL будет остановлен, и вам будет предложено ввести новый пароль.
sudo dpkg-reconfigure mysql-server-5.7
Ubuntu 16.04, он не предлагал ввести новый пароль.
mysql-server is broken or not fully installed
, можно использовать sudo apt purge mysql*
иsudo apt install mysql-server
Это работает как шарм, я сделал это для Ubuntu 16.04. Полный кредит по ссылке ниже, как я получил оттуда. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]
Стоп MySQL
sudo service mysql stop
Сделать сервисный каталог MySQL. sudo mkdir / var / run / mysqld
Дайте пользователю MySQL разрешение на запись в каталог службы.
sudo chown mysql: /var/run/mysqld
Запустите MySQL вручную, без проверки разрешений или работы в сети.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Войти без пароля.
mysql -uroot mysql
Обновите пароль для пользователя root. убедитесь, что по крайней мере корневая учетная запись обновляется по следующему запросу. сделайте выбор и проверьте существующие значения, если хотите
UPDATE mysql.user SET
authentication_string=PASSWORD('YOURNEWPASSWORD'),
plugin='mysql_native_password' WHERE User='root';
EXIT;
Отключи MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Запустите службу MySQL в обычном режиме.
sudo service mysql start
Остановите MySQL sudo сервис MySQL остановить
Сделать сервисный каталог MySQL. sudo mkdir / var / run / mysqld
Дайте пользователю MySQL разрешение на запись в каталог службы. sudo chown mysql: / var / run / mysqld
Запустите MySQL вручную, без проверки разрешений или работы в сети. sudo mysqld_safe --skip-grant-tables --skip-network &
5.Войдите без пароля. mysql -uroot mysql
6. Обновите пароль для пользователя root.
ОБНОВЛЕНИЕ mysql.user УСТАНОВИТЬ authentication_string = ПАРОЛЬ ('YOURNEWPASSWORD'), плагин = 'mysql_native_password' ГДЕ пользователь = 'root' AND Host = '%'; ВЫХОД;
Отключи MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Запустите службу MySQL в обычном режиме. sudo service mysql start
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
без AND Host='%'
. Спасибо!
Это решение относится к предыдущей версии MySQL. Зайдя в MySQL с помощью сокет-аутентификации, вы можете сделать это.
sudo mysql -u root
Затем можно выполнить следующую команду.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Подробности доступны здесь .
sudo mysql -u root
но я смог сделать это как sudo mysql
и запустить ALTER USER
команду.
Это решение для меня. Я работаю в Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373
Но важно это изменение на последнем шаге:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
Для Ubuntu 18.04 и mysql версии 14.14 Distrib 5.7.22 выполните следующий шаг для сброса пароля mysql.
sudo systemctl stop 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
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';
UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';
sudo systemctl revert mysql
и наконец
sudo systemctl restart mysql
Теперь наслаждайтесь
Повторяю комментарий rogerdpack: если вы не знаете пароль root для MySQL и вам не нужны данные / настройки MySQL, вы можете переустановить его и сбросить пароль root следующим образом:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client
Во время установки вы можете выбрать пароль root:
Если вы знаете свой текущий пароль, вам не нужно останавливать MySQL-сервер. Откройте терминал Ubuntu. Войдите в MySQL, используя:
mysql - username -p
Затем введите свой пароль. Это перенесет вас в консоль mysql. Внутри консоли введите:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Затем удалите привилегии, используя:
> flush privileges;
Тогда вы все сделали.
Когда вы используете MySQL PASSWORD()
в системе, где вы хотите изменить пароль, это может привести к тому, что пароль появится в журнале MySQL в виде открытого текста [ источник ]. Хранение их, их резервных копий и т. Д. Настолько безопасным, насколько пароль звучит для меня как кошмар, поэтому я предпочитаю делать это следующим образом:
На вашем локальном компьютере запустите это с вашим паролем:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
Обратите внимание на пространство впереди, чтобы предотвратить его появление в истории Bash (для других дистрибутивов, кроме Ubuntu, это может работать по-другому - источник ).
На вашем сервере выполните следующую команду, чтобы изменить свой корневой пароль MySQL (замените myhash
его хэш-паролем, как напечатано первой командой):
mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
Необязательно, давайте немного параноик: на вашем локальном компьютере очистите экран вашего терминала с помощью clear
и очистите прокрутку виртуального терминала, чтобы скрыть пароль открытого текста, появляющийся в приведенной выше команде.
Чтобы обновить «root» пароль пользователя Mysql, вы должны иметь в виду, что для этого вам потребуются права суперпользователя. Если у вас есть привилегии суперпользователя, попробуйте следующие команды:
MySQL 5.7.6 и позже
sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass
MySQL 5.7.5 и более ранние
sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
Вам не нужно все это. Просто войдите в систему:
mysql -u root -p
Затем измените пароль текущего пользователя в качестве mysql>
приглашения:
mysql> set password=password('the_new_password');
mysql> flush privileges;
Большинство ответов на эту тему устарели; Два основных изменения произошли в MySQL вплоть до написания этого ответа:
1 - поле «Пароль» в пользовательской таблице заменено на столбец «authentication_string».
2- функция шифрования «Пароль»: ПАРОЛЬ («некоторого текста») устарел.
Пожалуйста, обратитесь к этой ссылке для получения дополнительной информации: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Вместо сброса пароля на локальном компьютере есть обходной путь, если вы настроили phpmyadmin
подключение без указания пароля или имени пользователя. Проверьте это, запустив mysql
и apache
т. Д. Я xampp
установил на свой локальный компьютер. Таким образом, запуск xampp запустит все необходимые сервисы. Теперь собираюсь http://localhost/phpmyadmin
показать мне все базы данных. Это подтверждает, что вы сохранили имя пользователя и пароль в файле конфигурации phpmyadmin, который можно найти в месте phpmyadmin
установки. Если вы xampp
установили эту phpmyadmin
папку, ее можно найти в корневой папке xampp
установки. Поиск слова password
в config.inc.php
файле. Там вы найдете password
и username
.
Вы можете легко изменить пароль mysql, если он развернут на xampp через предоставленный графический интерфейс phpadmin.
phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
для mysql 5.6 эта команда работает, и вы можете установить пароль с помощью мастера:
sudo dpkg-reconfigure mysql-server-5.6
Вы можете попробовать эти шаги для сброса пароля root mysql 5.7:
Стоп Mysql Сервис 1-й
sudo /etc/init.d/mysql stop
Войдите в систему как root без пароля
sudo mysqld_safe --skip-grant-tables
и
После входа в MySQL терминал вам необходимо выполнить команды больше:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
После перезапуска сервера MySQL Если вы все еще сталкиваетесь с ошибкой, вы должны посетить: Сброс MySQL 5.7 пароль root Ubuntu 16.04
Вы можете использовать эту команду:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
после этого, пожалуйста, используйте flush:
FLUSH PRIVILEGES;
Установка пароля MySQL
sudo /etc/init.d/mysql stop
sudo mkdir / var / run / mysqld /
sudo chown mysql / var / run / mysqld /
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root
использовать mysql;
update user set authentication_string=PASSWORD("New_Passwore_Here") where
= User 'корень';
Сохраните изменения
сбрасывать привилегии; выход;
остановите MySQL safe_mode и запустите службу MySQL по умолчанию
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
sudo mysql -u root -p
*** Источник: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/
Если вы знаете пароль пользователя root, войдите в MySQL с этими учетными данными. Затем выполните следующий запрос, чтобы обновить пароль.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
при изменении / сбросе пароля MySQL следующие команды, перечисленные выше, не помогли. Я обнаружил, что входить в терминал и использовать эти команды бессмысленно. вместо этого используйте команду sudo stop all. УДАЛИТЬ СИСТЕМУ 32 для Windows, если это помогает.
ubuntu
ОС, а не о Windows. Что вы подразумеваете под DELETE SYSTEM 32 для Windows ?
Для сброса или изменения пароля введите sudo dpkg-reconfigure mysql-server-X.X
(XX - это версия MySQL, которую вы установили, т. Е. 5.6, 5.7), а затем вы увидите экран, на котором необходимо установить новый пароль, а затем на следующем шаге подтвердите пароль и просто подождите немного. Вот и все.
Мне пришлось пройти этот маршрут на Ubuntu 16.04.1 LTS. Это что-то вроде сочетания некоторых других ответов выше, но ни один из них не помог. Я потратил час или больше, пробуя все другие предложения с веб-сайта MySql ко всему на SO, но в конце концов он начал работать с:
Примечание: хотя он показывал «Введите пароль для пользователя root», у меня не было исходного пароля, поэтому я просто ввел тот же пароль использоваться в качестве нового пароля.
Примечание: не было /var/log/mysqld.log только /var/log/mysql/error.log
Также обратите внимание, что это не сработало для меня:
sudo dpkg-reconfigure mysql-server-5.7
И не сделал:
sudo dpkg-reconfigure --force mysql-server-5.5
Создать каталог службы MySQL.
sudo mkdir /var/run/mysqld
Дайте пользователю MySQL разрешение на запись в каталог службы.
sudo chown mysql: /var/run/mysqld
Затем:
запустите / usr / bin / mysql_secure_installation
Вывод из mysql_secure_installation
root @ myServer: ~ # / usr / bin / mysql_secure_installation
Обеспечение безопасности развертывания сервера MySQL.
Введите пароль для пользователя root:
VALIDATE PASSWORD PLUGIN можно использовать для проверки паролей и повышения безопасности. Он проверяет надежность пароля и позволяет пользователям устанавливать только те пароли, которые достаточно безопасны. Вы хотите установить плагин VALIDATE PASSWORD?
Нажмите y | Y для Да, любую другую клавишу для Нет: нет Используя существующий пароль для пользователя root. Изменить пароль для root? ((Нажмите y | Y для Да, любую другую клавишу для Нет): y
Новый пароль:
Повторно введите новый пароль: по умолчанию в установке MySQL есть анонимный пользователь, что позволяет любому входить в MySQL без необходимости создавать учетную запись пользователя. Это предназначено только для тестирования, и чтобы установка прошла более гладко. Вы должны удалить их, прежде чем переходить в производственную среду.
Удалить анонимных пользователей? (Нажмите y | Y для Да, любую другую клавишу для Нет): y Успешно.
Обычно пользователю root разрешается подключаться только с «localhost». Это гарантирует, что кто-то не сможет угадать пароль root из сети.
Запретить root-вход удаленно? (Нажмите y | Y для Да, любую другую клавишу для Нет): y Успешно.
По умолчанию MySQL поставляется с базой данных «test», доступ к которой может получить каждый. Это также предназначено только для тестирования и должно быть удалено перед переходом в производственную среду.
Удалить тестовую базу данных и доступ к ней? (Нажмите y | Y для Да, любую другую клавишу для Нет): y
Удаление тестовой базы данных ... Успех.
Удаление привилегий на тестовой базе данных ... Успех.
Перезагрузка таблиц привилегий гарантирует, что все сделанные изменения вступят в силу немедленно.
Перезагрузить таблицы привилегий сейчас? (Нажмите y | Y для Да, любую другую клавишу для Нет): y Успешно.
Все сделано!