MacOSX доморощенный пароль mysql - PullRequest
80 голосов
/ 14 марта 2012

По какой-то причине MySQL прекратил предоставлять доступ для root.Деинсталлировано и переустановлено с помощью Homebrew.Свежая установка, свежие таблицы, но когда я ввожу

mysql -u root -p

, я получаю эту ошибку:

Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)

Я переустанавливал MySQL пять раз, но он все еще запрашивает пароль.Как мне это исправить?

Ответы [ 11 ]

87 голосов
/ 06 сентября 2012

Просто запустите эту команду (где NEWPASS - ваш пароль):

$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS

У меня была такая же ошибка, и я ее исправил.

61 голосов
/ 26 марта 2012

У меня была такая же проблема пару дней назад.Это происходит, когда вы устанавливаете mysql через homebrew и запускаете сценарий инициализации (mysql_install_db) перед запуском демона mysql.

Чтобы исправить это, вы можете удалить mysql файлов данных, перезапустите службу и , затем запустите сценарий инициализации:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm -r /usr/local/var/mysql/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
58 голосов
/ 08 января 2014

В случае, если вы случайно установили и забыли пароль root, и вы не хотите стереть все свои базы данных и начать заново, потому что вы ленивы и забыли иметь решение для резервного копирования на месте, и вы используете довольно недавняя установка Homebrew (зима 2013), здесь приведены шаги для сброса пароля для MySQL.

Остановить текущий запущенный экземпляр MySQL

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Теперь запустите mysql, вручную пропустив таблицы грантов и сеть

$(brew --prefix mysql)/bin/mysqld_safe --skip-grant-tables --skip-networking

Обратите внимание: если вы запускаете echo $ (brew --prefix mysql) и он не отвечает как "/ usr / local / opt / mysql" в bash, вы нужно будет соответственно скорректировать путь.

Как только вы это сделаете, у вас должен быть запущенный незащищенный экземпляр MySQL.

Войдите и установите пароль

mysql -u root

В командной строке введите следующую команду MySQL, чтобы установить новый пароль для данного пользователя.

mysql> update mysql.user set password=PASSWORD('new_password_here') WHERE user='root';

Если все пошло по плану, он должен сказать:

Query OK, 1 row affected (0.02 sec)
Rows matched: 4  Changed: 1  Warnings: 0

Выход из приглашения MySQL.

mysql> exit
Bye

Остановить сервер:

mysqladmin -u root shutdown

Теперь давайте вернем демон запуска, чтобы MySQL снова был готов:

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Поздравления. Вы только что сбросили свой пароль root для mysql. Залей себе кофе и найди решение для резервного копирования!

52 голосов
/ 22 апреля 2018

Ничто из этого не сработало для меня. Я думаю, что у меня уже был mysql где-то на моем компьютере, поэтому пароль был установлен там или что-то. Потратив часы, пробуя каждое решение, вот что сработало для меня:

$ brew services stop mysql
$ pkill mysqld
$ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!!
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -uroot

все кредиты @ Ghrua

40 голосов
/ 11 сентября 2016

Получил эту ошибку после установки mysql через home brew.

Итак, сначала удалите установку. Затем переустановите через Homebrew

brew update
brew doctor
brew install mysql

Затем перезапустите службу MySQL

 mysql.server restart

Затем запустите эту команду, чтобы установить новый пароль root.

 mysql_secure_installation

Наконец, он попросит перезагрузить привилегии. Скажи да. Затем снова войдите в MySQL. И используйте новый пароль, который вы установили.

mysql -u root -p
4 голосов
/ 26 августа 2013

Я только что заметил что-то общее для большинства ответов здесь и подтвердил мою новую установку.Это на самом деле очевидно, если вы посмотрите на рекомендации по запуску mysqladmin -u root без -p.

Нет пароля.

Brew устанавливает mysql только с пользователем root и вообще без пароля,Думаю, это имеет смысл, но Caveats после установки вообще не упоминают об этом.

2 голосов
/ 28 октября 2017

Убедитесь, что у вас нет .my.cnf в вашем домашнем каталоге. Это была моя проблема.

1 голос
/ 14 марта 2019

Это сработало для меня для MAC https://flipdazed.github.io/blog/osx%20maintenance/set-up-mysql-osx

Запустите mysql, запустив

brew services start mysql

Запустить скрипт установки

mysql_secure_installation

Вам будет предложено настроить плагин VALIDATE PASSWORD. Введите y, чтобы сделать это.

Выберите требуемую проверку пароля (не имеет значения, используете ли вы только базу данных)

Теперь выберите y для всех оставшихся параметров: Удалить только. пользователей; запретить удаленный вход в систему; удалить тестовую базу данных; перезагрузить таблицы привилегий. Теперь вы должны получить сообщение

All done!

1 голос
/ 17 августа 2012

Запуск этих линий в терминале помог мне и нескольким другим, у которых была такая же проблема.Эти инструкции перечислены в терминале после того, как brew успешно установил mysql.

mkdir -p ~/Library/LaunchAgents

cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

/usr/local/Cellar/mysql/5.5.25a/bin/mysqladmin -u root password 'YOURPASSWORD'

, где YOURPASSWORD - пароль для пользователя root.

0 голосов
/ 04 февраля 2018

Пароль по умолчанию при установке mysql через brew - root, попробуйте это, у меня это сработало

mysql -uroot -proot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...