Установка пароля пользователя root root на OS X

Я только что установил MySQL в Mac OS X. Следующим шагом было установление пароля пользователя root, поэтому я сделал следующее:

  • Запустите приложение терминала для доступа к командной строке Unix.
  • В командной строке Unix я выполнил следующие команды:

    $ cd /usr/local/mysql/bin
    $ ./mysqladmin -u root password 'password'
    

Но когда я выполняю команду

$ ./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;

  1. В новом окне подключитесь к базе данных, установите новый пароль и сбросьте разрешения и закройте:

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

  1. Остановите сервер безопасного режима и запустите свой обычный сервер. Новый пароль должен работать сейчас. Работала как прелесть для меня:)

Ответ 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, настолько понятны, чем вышеупомянутые

  1. $ sudo/usr/local/mysql/support-files/mysql.server stop
  2. $ sudo/usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> FLUSH PRIVILEGES;
  5. mysql> ALTER USER 'root' @'localhost', ИДЕНТИФИЦИРОВАННЫЙ 'MyNewPass';
  6. mysql> exit или Ctrl + z
  7. $ sudo/usr/local/mysql/support-files/mysql.server stop
  8. $ sudo/usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. Введите новый пароль т.е. MyNewPass

Ссылка: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

Ответ 5

  1. Остановите сервер mysqld.

    • Mac OSX: System Preferences > MySQL > Stop MySQL Server
    • Linux (из терминала): sudo systemctl stop mysqld.service
  2. Запуск сервера в безопасном режиме с помощью обхода привилегий

    • От терминала: sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. В новом окне терминала:

    • sudo/usr/local/mysql/bin/mysql -u root
  4. Это откроет командную строку mysql. Отсюда введите:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. Остановите сервер mysqld и перезапустите его в обычном режиме.

    • Mac OSX (из терминала): sudo/usr/local/mysql/support-files/mysql.server restart
    • Linux Terminal: sudo systemctl restart mysqld

Ответ 6

Для новой Mysql 5.7 почему-то команды bin Mysql не привязаны к оболочке:

  1. Перезагрузите Mac после установки.

  2. Начать Mysql:

    Системные настройки> Mysql> Кнопка запуска

  3. Перейдите в папку установки Mysql в терминале:

    $ cd/usr/local/mysql/bin/

  4. Доступ к Mysql:

    $./mysql -u root -p

и введите начальный пароль для установки.

  1. В терминале 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

  1. остановить mysql

sudo /usr/local/mysql/support-files/mysql.server stop

  1. начать в безопасном режиме:

sudo mysqld_safe --skip-grant-tables

  1. откройте другой терминал, войдите в качестве привилегий su, чем, войдите в mysql без пароля.

mysql -u root

  1. изменить пароль

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

  1. привилегии flush

FLUSH PRIVILEGES;

  1. Теперь все готово

Ответ 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 его ответа должны были быть изменены на:

  1. /usr/local/bin/mysql.server stop

  2. /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

Это то, что именно сработало для меня:

  1. Убедитесь, что другой 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.
    
  2. Запустите MySQL с помощью команды:

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
    
  3. Пароль для каждого пользователя хранится в таблице mysql.user под столбцами User и authentication_string соответственно. Мы можем обновить таблицу следующим образом:

    UPDATE mysql.user SET authentication_string='your_password' where User='root'
    

Ответ 15

Если вы забыли свой пароль или хотите изменить его на свой mysql:

  1. запустите свой терминал и введите:
sudo su
  1. Введите пароль для вашей системы
  2. Остановите свой mysql:
sudo /usr/local/mysql/support-files/mysql.server stop
  1. Оставьте это окно ОТКРЫТО, запустите второе окно терминала и введите здесь:
mysql -u root
  1. И измените свой пароль для mysql:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

где "new_password" - ваш новый пропуск. Вам не нужен старый проход для mysql.

  1. Сбросьте, выйдите и проверьте свой новый пропуск:
FLUSH PRIVILEGES;
  1. Закройте все окна и проверьте свой новый проход для 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;

И вуаля пароль был сброшен.

Рекомендации :