无法通过 MySQL Workbench 连接到 Ubuntu 16.04 中的本地主机(无密码 root)

无法通过 MySQL Workbench 连接到 Ubuntu 16.04 中的本地主机(无密码 root)

Oracle 网站似乎暗示它只适用于 15 和 14。 http://dev.mysql.com/downloads/workbench/

另外,我的两台 Ubuntu 16.04 机器似乎无法连接(root 的访问被拒绝错误)

图片

安装成功。打开成功。但无法连接到本地主机。

有人有这样的运气吗?

答案1

问题可能是由于在升级到 16.04 期间,默认情况下在未设置密码的情况下为 root 用户启用套接字身份验证。此重要警告记录在 16.04发行说明

当 MySQL 根密码为空时,密码行为已更改。当 MySQL 根密码为空时,打包现在启用套接字身份验证。这意味着非根用户无法使用空密码以 MySQL 根用户身份登录。

无论出于什么原因,至少对我来说,16.04 附带的 MySQL Workbench 无法与 MySQL 服务器直接配合使用。我尝试使用“本地套接字/管道”以多种不同方式进行连接,但都无济于事。

解决方案是恢复本机密码验证。您可以通过以下方式使用套接字身份验证登录 MySQL:

sudo mysql -u root

登录后:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

这将恢复为本机(旧默认)密码验证。如果您尝试过其他方法来修复此问题,则需要确保 mysql.user 中的“plugin”字段设置为“auth_token”,如果您像我一样一直在摆弄东西,则可能需要使用 mysqld_safe 登录 MySQL。

归功于米格尔·涅托的博客文章该解决方案。

答案2

MySQL 5.7 及更高版本不支持以“root”身份连接,mysql-workbench因此您必须创建普通用户并通过该用户进行连接。

sudo mysql -u root -p

创建一个名为“admin”的用户并使用该用户进行连接mysql-workbench

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

答案3

这个问题可能已经两年了,但我今晚使用 mysql-workbench 的工作似乎给了我答案。

root 用户现在默认使用 auth_socket 身份验证。root 获得访问权限的唯一方法是以 root 身份登录。

mysql -u root我通过以 root 用户和标准用户身份运行发现了这一点 。

它在标准用户下无法工作。

所以我的下一个问题是 - mysql-workbench 以什么用户身份运行。事实证明它默认以标准用户身份运行。要让它以 root 用户身份运行,必须从 root 用户运行。所以我进入 root 用户 CLI 并输入“mysql-workbench”。

然后我必须进入 root 用户的设置,如下所示。文件位置对于 ubuntu 18.04 安装有效。

根连接设置 mysql-workbench。

如果该套接字位置无效,则需要从 root 或 sudo 进入 mysql CLI 并运行以下命令。

MySQL CLI 命令来查找套接字。

正确设置后测试连接。连接应该成功,您就可以开始了。

答案4

尝试这个

select mysql database

use mysql;
UPDATE user set plugin='mysql_native_password' where User='root';
flush privileges;
exit;

然后

sudo service mysql restart

相关内容