Я хотел иметь на своем ПК (с Windows 8.1 x64) только сервер MySQL, без Workbench или чего-то еще. Поэтому я скачал .zipархив с dev.mysql.com/downloads . Это загрузка для Win64 на x86_64 версии 5.7.9 (MySQL Community Server (GPL)).
Я установил его как службу Windows, но mysqlбазы данных не было, только information_schema. Итак, я выполнил это:
mysql_upgrade.exe --upgrade-system-tables
И mysqlбазы данных были созданы. Но наряду с этим что-то случилось с пользователем root, потому что я больше не мог получить доступ mysql.
Поэтому я решил сбросить этот внезапно появившийся пароль (потому что до этого у меня его не было). В официальном руководстве я нашел следующее решение и запустил сервер следующим образом:
mysqld.exe --skip-grant-tables --console
Затем я открыл mysqlбез пароля:
mysql.exe –u root
А затем попытался сбросить пароль root:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
Но я получил эту ошибку:
ОШИБКА 1131 (42000): вы используете MySQL в качестве анонимного пользователя, и анонимным пользователям запрещено изменять пароли ".
Что это? Как я аноним? Все команды были выполнены в cmd.exeрамках Администратора.
Что я должен сделать, чтобы сбросить пароль root в этой ситуации?
Обновление 1: я попытался проверить текущего пользователя:
SELECT USER(), CURRENT_USER();
Это дает:
+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+
| root@ | @ |
+--------+----------------+
Это странно, потому что я начал это так mysql.exe -u root.
Затем я проверил таблицу пользователей:
SELECT user FROM mysql.user;
Это дает:
+-----------+
| user |
+-----------+
| mysql.sys |
+-----------+
Это еще более странно. Также нет поля пароля:
SELECT user, password FROM mysql.user;
ОШИБКА 1054 (42S22): неизвестный столбец «пароль» в «списке полей»
Поэтому я не могу изменить его пароль.
И я не могу создать нового пользователя:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'passhere';
ОШИБКА 1290 (HY000): Сервер MySQL работает с
--skip-grant-tablesопцией, поэтому он не может выполнить этот оператор
Теперь я потерялся.
Обновление 2: я думаю, я сделал все неправильно с самого начала. Судя по всему, я как-то пропустил mysqld.exe --initializeкоманду.
Итак, вот как я установил MySQL из .zip-архива, благодаря @RolandoMySQLDBA :
- Распакуйте архив, подготовьте
my.ini. - Выполните
mysqld.exe --initialize, получите временный пароль из.errфайла. Установите MySQL как сервис и запустите его
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"Подключитесь к нему
mysql -u root -pс временным паролем.Изменить временный пароль:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';