Доступ запрещен для пользователя 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)
-
Откройте окно терминала, используйте команду ниже, чтобы остановить mysql, если он уже запущен.
sudo/usr/local/mysql/support-files/mysql.server stop
Вы также можете проверить Системные настройки> MySQL, чтобы увидеть, работает ли он
-
Запустите MySQL с помощью этой команды:
sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
-
Откройте новое окно терминала/вкладку:
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
-
Остановите MySql сервер
sudo/usr/local/mysql/support-files/mysql.server stop
-
Перезапустите 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:
brew install mariadb
- Запустите MySQL Server:
mysql.server start
или запустите brew services start mariadb
, чтобы запустить MySQL Server при входе в систему на компьютере.
- Получить в MySQL экземпляр
sudo mysql -u root
ПРИМЕЧАНИЕ: mysql -u root
выдаст ошибку ERROR 1698 (28000): Access denied for user 'root'@'localhost'
, поэтому используйте sudo
для запуска этой команды.
Теперь, чтобы изменить пароль пользователя root
, я попробовал следующие команды:
UPDATE user SET password=PASSWORD("mypassword") WHERE User='root';
- Это привело к ошибке:
ERROR 1348 (HY000): Column 'Password' is not updatable
UPDATE user SET authentication_string=PASSWORD("mypassword") WHERE User='root';
- Это привело к ошибке:
ERROR 1348 (HY000): Column 'authentication_string' is not updatable
Но следующая команда сработала:
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
в первой строке.