krenkz Asked: 2021-02-01 10:58:41 +0800 CST2021-02-01 10:58:41 +0800 CST 2021-02-01 10:58:41 +0800 CST 为什么 Mysql Workbench 拒绝接受 Ubuntu 20.04 中的原始 root? 772 我刚刚在 Ubuntu 20.04 中安装了一个新的 mysql-server 和 Mysql Workbench 该服务器运行良好,尽管它必须用于sudo登录 root。尽管如此,Mysql Workbench 拒绝连接到数据库服务器(Access denied for user 'root'@'localhost'),只有当我替换原来的 root 时(如堆栈溢出答案中所述),工作台最终接受了新的. 究竟是什么导致了这个问题? 20.04 1 个回答 Voted Best Answer codlord 2021-02-01T11:37:57+08:002021-02-01T11:37:57+08:00 默认情况下,root 配置了unix_socket身份验证。基本上来说,如果以这种方式配置数据库用户(在本例中为 root),它不会使用密码。登录的唯一方法是如果您是同一个 unix/linux 用户。 所以你的 mysql 工作台没有以 root 身份运行,因此它不可能以 root 数据库用户身份登录。通过将身份验证方法更改为密码身份验证,您解决了问题,但可能使数据库更加不安全。 出于安全原因,root 数据库用户通常会保留为 unix_socket 身份验证,您只需创建具有所需权限的任何其他数据库用户。 这是一篇关于这个主题的好文章: https ://mariadb.com/kb/en/authentication-plugin-unix-socket/
默认情况下,root 配置了
unix_socket
身份验证。基本上来说,如果以这种方式配置数据库用户(在本例中为 root),它不会使用密码。登录的唯一方法是如果您是同一个 unix/linux 用户。所以你的 mysql 工作台没有以 root 身份运行,因此它不可能以 root 数据库用户身份登录。通过将身份验证方法更改为密码身份验证,您解决了问题,但可能使数据库更加不安全。
出于安全原因,root 数据库用户通常会保留为 unix_socket 身份验证,您只需创建具有所需权限的任何其他数据库用户。
这是一篇关于这个主题的好文章: https ://mariadb.com/kb/en/authentication-plugin-unix-socket/