Не удается подключиться к базе данных MySQL после обновления до версии 8.0
Я обновил рабочий стол MySQL до версии 8.0 и сервер MySQL до версии 8.0.15. Я перезапустил свой компьютер и открыл верстак. Я нашел свою старую связь. Когда я нажимаю на тестовое соединение, я получаю успешный результат.
Когда я дважды щелкаю по своему соединению, я получаю это сообщение об ошибке.
Я попытался войти на сервер MySQL, используя и сбросить пароль:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Пожалуйста, в чем может быть проблема?
Я забыл, какой был номер порта, когда я установил соединение в старой... версии.
РЕДАКТИРОВАТЬ:
В терминале это попытка и похоже работает. Просто верстак, с которого я раньше работал. Обратите внимание, что я использую Ubunut 18.04:
$ mysql -u root -p -h 127.0.0.1 -P 3306
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2019, 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>
2 ответа
Из Commentz:
Сообщение об ошибке, которое вы получаете:
The user specified as a definer ('mysql.infoschema'@'localhost') doesn't exist.
Чтобы решить это, запустите,
mysql_upgrade -u root -p
mysql_install_db
в терминале. Если проблема не решается, запустите
> create user 'mysql.infoschema'@'localhost';
в MySQL.
SQL v8.0 изменил протокол аутентификации:
На v8.0 он использует caching_sha2_password
,
Прежде чем это было mysql_native_password
,
Для создания нового пользователя в предыдущей версии это было:
GRANT ALL PRIVILEGES ON *.* TO 'rootV5'@'localhost' WITH GRANT OPTION;
Чтобы создать нового пользователя на v8.0, выполнив следующие команды (конечно, замените root и пароль на ваш собственный!):
CREATE USER 'rootV8'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'rootV8'@'%' WITH GRANT OPTION;
Чтобы изменить шифрование пароля от старой версии пользователя:
ALTER USER 'user'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
Я надеюсь, что вы исправите свою проблему с этим:)