Не удается подключиться к базе данных 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';

Я надеюсь, что вы исправите свою проблему с этим:)

Другие вопросы по тегам