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