Установка пароля пользователя root root на OS X
Я только что установил MySQL в Mac OS X. Следующим шагом было установление пароля пользователя root, поэтому я сделал следующее:
Но когда я выполняю команду
$ ./mysql -u root
, это ответ:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, 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
без пароля!
Почему это?
Ответы
Ответ 1
Попробуйте FLUSH PRIVILEGES
команду FLUSH PRIVILEGES
при входе в терминал MySQL. Если это не сработает, попробуйте следующий набор команд в терминале MySQL
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Измените NEWPASSWORD с любым паролем, который вы хотите. Должно быть все готово!
Обновление: Начиная с MySQL 5.7, поле password
было переименовано в authentication_string
. При смене пароля используйте следующий запрос для смены пароля. Все остальные команды остаются прежними:
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
Обновление: 8.0.15 (возможно, уже до этой версии) функция PASSWORD() не работает, как указано в комментариях ниже. Вы должны использовать:
UPDATE mysql.user SET authentication_string='password' WHERE User='root';
Ответ 2
Если вы не помните пароль, установленный для root, и его нужно reset, выполните следующие действия:
- Остановить сервер mysqld, это зависит от установки
- Запустите сервер в безопасном режиме с обходом привилегий
sudo mysqld_safe --skip-grant-tables;
- В новом окне подключитесь к базе данных, установите новый пароль и сбросьте разрешения и закройте:
mysql -u root
Для MySQL старше MySQL 5.7 используйте:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
Для MySQL 5.7+ используйте:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
Обновить и выйти:
FLUSH PRIVILEGES;
\q
- Остановите сервер безопасного режима и запустите свой обычный сервер. Новый пароль должен работать сейчас. Работала как прелесть для меня:)
Ответ 3
После того, как вы установили MySQL, вам необходимо установить пароль "root". Если вы не установили пароль root, то, конечно, нет пароля root, и вам не нужен пароль для входа.
Итак, при этом вам нужно установить пароль root.
Используя терминал, введите следующее:
Установка: задайте пароль пользователя root:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Если вы допустили ошибку или вам нужно изменить пароль root, используйте следующее:
Изменить пароль root:
cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]
use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit
Ответ 4
Инструкции, представленные на сайте MySQL, настолько понятны, чем вышеупомянутые
-
$ sudo/usr/local/mysql/support-files/mysql.server stop
-
$ sudo/usr/local/mysql/support-files/mysql.server start --skip-grant-tables
-
/usr/local/mysql/bin/mysql
- mysql> FLUSH PRIVILEGES;
- mysql> ALTER USER 'root' @'localhost', ИДЕНТИФИЦИРОВАННЫЙ 'MyNewPass';
- mysql>
exit
или Ctrl + z -
$ sudo/usr/local/mysql/support-files/mysql.server stop
-
$ sudo/usr/local/mysql/support-files/mysql.server start
-
/usr/local/mysql/support-files/mysql -u root -p
- Введите новый пароль т.е. MyNewPass
Ссылка: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Ответ 5
-
Остановите сервер mysqld.
- Mac OSX:
System Preferences
> MySQL
> Stop MySQL Server
- Linux (из терминала):
sudo systemctl stop mysqld.service
-
Запуск сервера в безопасном режиме с помощью обхода привилегий
- От терминала:
sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
-
В новом окне терминала:
-
sudo/usr/local/mysql/bin/mysql -u root
-
Это откроет командную строку mysql. Отсюда введите:
-
Остановите сервер mysqld и перезапустите его в обычном режиме.
- Mac OSX (из терминала):
sudo/usr/local/mysql/support-files/mysql.server restart
- Linux Terminal:
sudo systemctl restart mysqld
Ответ 6
Для новой Mysql 5.7 почему-то команды bin Mysql не привязаны к оболочке:
-
Перезагрузите Mac после установки.
-
Начать Mysql:
Системные настройки> Mysql> Кнопка запуска
-
Перейдите в папку установки Mysql в терминале:
$ cd/usr/local/mysql/bin/
-
Доступ к Mysql:
$./mysql -u root -p
и введите начальный пароль для установки.
-
В терминале Mysql сменить пароль:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
Ответ 7
В терминале напишите mysql -u root -p
и нажмите Return.
Введите текущий пароль mysql, который вы должны были записать.
И установите пароль
SET PASSWORD = PASSWORD('new_password');
Подробнее см. в этой документации здесь.
Ответ 8
Если вы забыли пароль администратора MySQL, не помните или хотите перерыть..... вы можете reset пароль базы данных mysql из командной строки в Linux или OS X, если знаете пароль пользователя root коробки, в которой вы находитесь:
(1) Остановить MySQL
sudo /usr/local/mysql/support-files/mysql.server stop
(2) Запустите его в безопасном режиме:
sudo mysqld_safe --skip-grant-tables
(3) Это будет текущая команда, пока процесс не завершится , поэтому откройте другое окно оболочки/терминала, войдите в систему без пароля:
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
В приведенной выше команде UPDATE просто замените пароль на свой новый пароль, не забудьте сохранить кавычки
(4) Сохранить и довольно
FLUSH PRIVILEGES;
\q
(5) Запустите MySQL
sudo /usr/local/mysql/support-files/mysql.server start
Ответ 9
Когда я установил OS X Yosemite, у меня возникла проблема с Mysql. Я пробовал много методов, но никто не работал. На самом деле я нашел довольно простой способ. Попробуйте это.
- Первый вход в терминал из привилегий su.
sudo su
- остановить mysql
sudo /usr/local/mysql/support-files/mysql.server stop
- начать в безопасном режиме:
sudo mysqld_safe --skip-grant-tables
- откройте другой терминал, войдите в качестве привилегий su, чем, войдите в mysql без пароля.
mysql -u root
- изменить пароль
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
- привилегии flush
FLUSH PRIVILEGES;
- Теперь все готово
Ответ 10
Методы, упомянутые в существующих ответах, не работают для MySQL 5.7.6 или новее. Согласно документации MySQL это рекомендуемый способ.
B.5.3.2.3 Сброс пароля root: общие инструкции
MySQL 5.7.6 и позже:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Ссылка: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Ответ 11
Если вы не можете вспомнить свой пароль, ответ @radtek работал для меня, кроме как в моем случае я настроил MySQL с использованием варева, что означало, что шаги 1 и 2 его ответа должны были быть изменены на:
-
/usr/local/bin/mysql.server stop
-
/usr/local/bin/mysqld_safe --skip-grant-tables
Примечание: отсутствие sudo
.
Ответ 12
Я думаю, что это должно работать:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'
(Обратите внимание, что вам, вероятно, следует заменить root своим именем пользователя, если оно не root)
Ответ 13
Остановка сервера MySQL
sudo/usr/local/mysql/support-files/mysql.server stop
Запуск MySQL в безопасном режиме
sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
Изменение пароля root
/usr/local/mysql/bin/mysql -u root
use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit
тестирование
Запустить /usr/local/mysql/bin/mysql -u root
Теперь введите новый пароль, чтобы начать использовать MySQL.
Ответ 14
Это то, что именно сработало для меня:
-
Убедитесь, что другой MySQL-процесс не запущен. Чтобы проверить это, выполните следующие действия:
a.From the terminal, run this command:
lsof -i:3306
If any PID is returned, kill it using kill -9 PID
b. Go To System Preferences > MySQL > check if any MySQL instances
are running, stop them.
-
Запустите MySQL с помощью команды:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
-
Пароль для каждого пользователя хранится в таблице mysql.user под столбцами User и authentication_string соответственно. Мы можем обновить таблицу следующим образом:
UPDATE mysql.user SET authentication_string='your_password' where User='root'
Ответ 15
Если вы забыли свой пароль или хотите изменить его на свой mysql:
- запустите свой терминал и введите:
sudo su
- Введите пароль для вашей системы
- Остановите свой mysql:
sudo /usr/local/mysql/support-files/mysql.server stop
- Оставьте это окно ОТКРЫТО, запустите второе окно терминала и введите здесь:
mysql -u root
- И измените свой пароль для mysql:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
где "new_password" - ваш новый пропуск. Вам не нужен старый проход для mysql.
- Сбросьте, выйдите и проверьте свой новый пропуск:
FLUSH PRIVILEGES;
- Закройте все окна и проверьте свой новый проход для mysql. Удачи.
Ответ 16
Многое изменилось для MySQL 8. Я нашел следующее изменение MySQL 8.0 "Как восстановить пароль корневого пароля" работает с Mac OS X.
Создайте временный файл $HOME/mysql.root.txt
с SQL для обновления пароля root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';
Это использует mysql_native_password
чтобы избежать плагина проверки подлинности 'caching_sha2_password' не может быть загружена ошибка, которую я получаю, если опустить параметр.
Остановите сервер, начните с параметра --init-file
чтобы установить пароль root, а затем перезапустите сервер:
mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start
Ответ 17
Попробуйте это в терминале: /usr/local/bin/mysql_secure_installation
Ответ 18
macOS 10. 14+ с 5.7.26, установленным из установщика Mac OSX DMG.
При попытке использовать команду UPDATE, опубликованную другими пользователями, возникает следующая ошибка:
ОШИБКА 1820 (HY000): перед выполнением этого оператора необходимо сбросить пароль с помощью инструкции ALTER USER.
Скопируйте пароль, предоставленный вам открытым терминалом установщика, и сделайте следующее:
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';
Ответ 19
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
Мне как-то нужно делать это каждый раз, когда мой Macbook перезагружается. Размещая это для личного ознакомления, надеюсь, это поможет кому-то еще.
Ответ 20
Давайте добавим этот обходной путь, который работает на моем ноутбуке!
Mac с Osx Mojave 10.14.5
Mysql 8.0.17 был установлен с домашним пивом
Я запускаю следующую команду, чтобы найти путь к MySQL
brew info mysql
Как только путь известен, я запускаю это:
/usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table
В другом терминале я запускаю:
mysql -u root
Внутри этого терминала я изменил пароль root с помощью:
update mysql.user set authentication_string='NewPassword' where user='root';
и чтобы закончить, я бегу:
FLUSH PRIVILEGES;
И вуаля пароль был сброшен.
Рекомендации :