Я только что установил MySQL в Mac OS X. Следующим шагом было установление пароля пользователя root, поэтому я сделал следующее:
В командной строке 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
без пароля!
Почему это?
Попробуйте выполнить команду 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';
Если вы не помните пароль, установленный для root, и его нужно reset, выполните следующие действия:
sudo mysqld_safe --skip-grant-tables;
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
После того, как вы установили MySQL, вам необходимо установить пароль "root". Если вы не установили пароль root, то, конечно, нет пароля root, и вам не нужен пароль для входа.
Итак, при этом вам нужно установить пароль root.
Используя терминал, введите следующее:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Если вы допустили ошибку или вам нужно изменить пароль 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
update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';
вместо использования set password=...
Инструкции, представленные на веб-сайте 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/support-files/mysql
4) mysql> FLUSH PRIVILEGES;
5) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
6) Ctrl + z
7) sudo /usr/local/mysql/support-files/mysql.server start
8) /usr/local/mysql/support-files/mysql -u root -p
9) enter the new password i.e MyNewPass
http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Остановите сервер mysqld.
System Preferences
> MySQL
> Stop MySQL Server
sudo systemctl stop mysqld.service
Запуск сервера в безопасном режиме с помощью обхода привилегий
sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
В новом окне терминала:
sudo/usr/local/mysql/bin/mysql -u root
Это откроет командную строку mysql. Отсюда введите:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
FLUSH PRIVILEGES;
quit
Остановите сервер mysqld и перезапустите его в обычном режиме.
sudo/usr/local/mysql/support-files/mysql.server restart
sudo systemctl restart mysqld
Для новой Mysql 5.7 почему-то команды bin Mysql не привязаны к оболочке:
Перезагрузите Mac после установки.
Начать Mysql:
Системные настройки> Mysql> Кнопка запуска
Перейдите в папку установки Mysql в терминале:
$ cd/usr/local/mysql/bin/
Доступ к Mysql:
$./mysql -u root -p
и введите начальный пароль для установки.
В терминале Mysql сменить пароль:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
В терминале напишите mysql -u root -p
и нажмите Return.
Введите текущий пароль mysql, который вы должны были записать.
И установите пароль
SET PASSWORD = PASSWORD('new_password');
Подробнее см. в этой документации здесь.
Если вы забыли пароль администратора 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
Когда я установил OS X Yosemite, у меня возникла проблема с Mysql. Я пробовал много методов, но никто не работал. На самом деле я нашел довольно простой способ. Попробуйте это.
sudo su
sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
sudo/usr/local/mysql/support-files/mysql.server stop
sudo/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
/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.
Если вы не можете вспомнить свой пароль, ответ @radtek работал для меня, кроме как в моем случае я настроил MySQL с использованием варева, что означало, что шаги 1 и 2 его ответа должны были быть изменены на:
/usr/local/bin/mysql.server stop
/usr/local/bin/mysqld_safe --skip-grant-tables
Примечание: отсутствие sudo
.
Если вы забыли свой пароль или хотите изменить его на свой mysql:
sudo su
sudo /usr/local/mysql/support-files/mysql.server stop
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
где "new_password" - ваш новый пропуск. Вам не нужен старый проход для mysql.
FLUSH PRIVILEGES;
Многое изменилось для 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
Это то, что именно сработало для меня:
Убедитесь, что другой 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.
Запустите MySQL с помощью команды:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Пароль для каждого пользователя хранится в таблице mysql.user под столбцами User и authentication_string соответственно. Мы можем обновить таблицу следующим образом:
UPDATE mysql.user SET authentication_string='your_password' where User='root'
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
вместо.