Ответ 1
Просто запустите эту команду (где NEWPASS
- ваш пароль):
$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS
У меня была такая же ошибка, и я ее исправил.
По какой-то причине MySQL перестала давать доступ для root. Удалено и переустановлено с помощью Homebrew. Свежая установка, свежие таблицы, но когда я вхожу
mysql -u root -p
Я получаю эту ошибку:
Доступ запрещен для пользователя 'root' @'localhost' (с использованием пароля: НЕТ)
Я переустанавливал MySQL пять раз, но он все еще запрашивает пароль. Как это исправить?
Просто запустите эту команду (где NEWPASS
- ваш пароль):
$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS
У меня была такая же ошибка, и я ее исправил.
У меня была такая же проблема пару дней назад. Это происходит, когда вы устанавливаете mysql
через homebrew
и запускаете инициализацию script (mysql_install_db
) до, начиная с демона mysql
.
Чтобы исправить это, вы можете удалить файлы данных mysql
, перезапустить службу и затем запустить инициализацию script:
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
Если вы случайно установили и забыли пароль root, и вы не хотите стереть все ваши базы данных и начать все заново, потому что вы ленивы и забываете иметь резервное решение на месте, и вы используете довольно недавняя установка Homebrew (зима 2013), вот шаги к reset вашему паролю для 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
Поздравления. Вы только reset ваш пароль пользователя mysql. Налейте себе кофе и получите резервное решение на месте!
Ничто из этого не помогло мне. Я думаю, что у меня уже был 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
Получил эту ошибку после установки mysql через home brew.
Итак, сначала удалите установку. Затем переустановите через Homebrew
brew update
brew doctor
brew install mysql
Затем перезапустите службу mysql
mysql.server restart
Затем запустите эту команду, чтобы установить новый пароль root.
mysql_secure_installation
Наконец, он попросит перезагрузить привилегии. Скажи да. Затем снова войдите в mysql. И используйте новый пароль, который вы установили.
mysql -u root -p
Я только что заметил что-то общее для большинства ответов здесь и подтвердил свою новую установку. Это действительно очевидно, если вы посмотрите на рекомендации для запуска mysqladmin -u root
без -p
.
Нет пароля.
Brew устанавливает mysql только с пользователем root и без пароля. Это имеет смысл, я думаю, но post-install Caveats вообще не упоминает об этом.
Убедитесь, что у вас нет .my.cnf, скрывающегося в вашем homedir. Это была моя проблема.
Запуск этих строк в терминале помогло и нескольких других, у которых была такая же проблема. Эти инструкции перечислены в терминале после 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.
Для меня это работало для MAC https://flipdazed.github.io/blog/osx%20maintenance/set-up-mysql-osx
Запустите mysql, запустив
Заваривать услуги запуска MySQL
Запустите установочный скрипт
mysql_secure_installation
Вам будет предложено настроить плагин VALIDATE PASSWORD. Введите y, чтобы сделать это.
Выберите требуемую проверку пароля (не имеет значения, используете ли вы только базу данных)
Теперь выберите y для всех оставшихся вариантов: Удалить еще раз. пользователей; запретить удаленный вход в систему; удалить тестовую базу данных; перезагрузить таблицы привилегий. Теперь вы должны получить сообщение
All done!
Терминал 1:
$ mysql_safe
Терминал 2:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Пароль по умолчанию при установке mysql через brew - root, попробуйте это, у меня получилось
mysql -uroot -proot