Доступ запрещен для пользователя root - mysql в ОС MAC

Я знаю, как пропустить эту проблему на ubuntu, но как я могу это сделать на MAC OS?

Как установить пароль для mysql на MAC?

1) Не работает

mysqladmin -u root password NEWPASSWORD

2) Не работает

mysqld --skip-grant-tables --skip-networking &

3) Это работает:

забыл пароль пользователя mysql

Ответ 1

Вы можете сделать следующее на Mac (El Capitan)

  1. Откройте окно терминала, используйте команду ниже, чтобы остановить mysql, если он уже запущен.

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

    Вы также можете проверить Системные настройки> MySQL, чтобы увидеть, работает ли он

  2. Запустите MySQL с помощью этой команды:

    sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables

  3. Откройте новое окно терминала/вкладку:

    sudo/usr/local/mysql/bin/mysql -u root

    Это должно открыть приглашение "mysql". Выполните следующую команду:

    $mysql> UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';

    Советы по устранению неполадок:

    A) Команда для версий MySql до 5.7 была:

    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';

    Б) Если вы видите ERROR 1046 (3D000): No database selected, затем сначала выполните эту команду:

    use mysql;

    C) Если вы видите неизвестную ошибку поля "Пароль", выполните эту команду:

    UPDATE USER SET AUTHENTICATION_STRING=password('NewPassword') WHERE user='root'; $mysql> FLUSH PRIVILEGES; $mysql> EXIT

  4. Остановите MySql сервер

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

  5. Перезапустите MySQL либо через Системные настройки> MySql, либо с помощью команды.

Ответ 2

Решение

UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';

не работал на меня, но я сделал

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

И смог продолжить. Я использую Ver 8.0.12.

Ответ 3

Вы можете сделать следующее на iMac или Mac (High Sierra)

Откройте окно терминала и остановите MySQL, если он уже запущен. Вы также можете проверить это Системные настройки> MySQL> посмотреть, работает ли он.

Запустите MySQL с помощью этой команды для пропуска основной таблицы

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

Откройте новое окно терминала/вкладку.

sudo /usr/local/mysql/bin/mysql -u root

Это должно открыть приглашение "mysql". Выполните следующую команду:

А) MySQL 5.6 и ниже

UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';

-- или же --

Б) MySQL 5. 7+

UPDATE mysql.user SET authentication_string=PASSWORD('NewPassord') WHERE user='root';

Перезапустите MySQL либо через Системные настройки> MySql, либо с помощью команды.

Ответ 4

Для MySQL 5.7 мне пришлось использовать:

UPDATE user SET authentication_string = PASSWORD ('YourNewPassword'), password_expired = 'N' WHERE Пользователь = 'root';

Ответ 5

MACOS 10.14 MOJAVE || MYSQL 8.0.15

Это не сработало на моем Mac:

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

НО ЭТО НА САМОМ ДЕЛЕ РАБОТАЛО:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/support-files/mysql.server stop

Папка установки может варьироваться в зависимости от пользователя, будьте осторожны!

Или просто проверьте> Системные настройки> MySQL>, если сервер работает, остановите его.

затем,

Запустите MySQL с помощью этой команды:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld_safe --skip-grant-tables

Откройте новое окно терминала/вкладку:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysql -u root

Это должно открыть приглашение "mysql". Выполните следующую команду (* прокрутите вправо, если у вас нет полного запроса):

UPDATE mysql.user SET authentication_string='your-password-goes-here' WHERE user='root' and host='localhost';

ПОМНИТЕ, ЧТО

MySQL-8.0.15-macos10.14-x86_64

(в моем случае) это папка установки на вашем локальном компьютере, и она может отличаться от моей в зависимости от версий ОС, версий MySQL, используемых методов установки и т.д.

Ответ 6

Очень простое исправление для версии MariaDB: 10.4.6-MariaD в Mojave macOS

Я прошел через все ответы. Некоторые из них помогли мне, некоторые из них нет. Я нашел один простой способ исправить это на macOS или OSX. Вот шаги:

Предпосылки:

Доморощенный должен быть установлен. Используйте следующую ссылку, чтобы установить homebrew на macOS или OSX.

Установите mariadb:

  1. brew install mariadb
  2. Запустите MySQL Server: mysql.server start или запустите brew services start mariadb , чтобы запустить MySQL Server при входе в систему на компьютере.
  3. Получить в MySQL экземпляр sudo mysql -u root

ПРИМЕЧАНИЕ: mysql -u root выдаст ошибку ERROR 1698 (28000): Access denied for user 'root'@'localhost', поэтому используйте sudo для запуска этой команды.

  1. Теперь, чтобы изменить пароль пользователя root, я попробовал следующие команды:

    1. UPDATE user SET password=PASSWORD("mypassword") WHERE User='root';
      • Это привело к ошибке: ERROR 1348 (HY000): Column 'Password' is not updatable
    2. UPDATE user SET authentication_string=PASSWORD("mypassword") WHERE User='root';
      • Это привело к ошибке: ERROR 1348 (HY000): Column 'authentication_string' is not updatable
  2. Но следующая команда сработала:

    • ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';
      • Ответ был: Query OK, 0 rows affected (0.009 sec)

Так что для меня это было простое исправление для версии 10.4.6-MariaD, установленной через brew. Надеюсь, это вам тоже поможет.

Ответ 7

Мне было очень трудно исправить эту проблему на MAC Sierra, 10.12.6, MySql версия 5.7.17

Следующие шаги помогли мне:

Откройте окно терминала, используйте команду ниже, чтобы остановить mysql, если он уже запущен.

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

Запустите MySQL с помощью этой команды:

sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables

Откройте новое окно терминала/вкладку:

root sudo/usr/local/mysql/bin/mysql -u

Это откроет приглашение "mysql". Выполните следующую команду в приглашении mysql один за другим:

use mysql;

UPDATE user SET authentication_string = PASSWORD('my_new_password'), password_expired = 'N' WHERE User = 'root';

FLUSH PRIVILEGES;

EXIT

Теперь сначала остановите сервер MySql, затем запустите его, используя команды ниже

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

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

Надеюсь, это решит вашу проблему.

Ответ 8

Я обнаружил, что в Mac Mojave, по крайней мере, если вы выполняете установку прямо с загрузки MySQL Community Package, а не через brew, очевидно, вам все равно нужно вставить пароль, который вы выбрали для "root", через экран "Системные настройки" после остановки, перезапустив с безопасным режим (--skip-grant-tables) и сброс привилегий. Затем вы можете войти в систему как root в phpMyAdmin. Это было сделано после того, как вы попытались исправить не менее 20 различных советов/инструкций, в том числе перечисленных выше на этой странице. Надеюсь, это поможет кому-то!

Ответ 9

sudo mysql -uroot
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
flush privileges;
Ctrl+D
mysql -uroot -pnew_password  # will work now

Обратите внимание на sudo в первой строке.