升级到 8.0 版本后无法连接到 MySQL 数据库

升级到 8.0 版本后无法连接到 MySQL 数据库

我将 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> 

答案1

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';

我希望你能解决这个问题:)

答案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 中。

相关内容