访问Mysql的问题

Gen*_*ant 7 mysql permissions

我已经安装并重新安装了更多次 Mysql,但程序总是拒绝我访问说:

错误 1045 (28000): 用户 'root'@'localhost' 访问被拒绝(使用密码:YES)

如果我使用真实密码,则无法进入Mysql。有什么建议吗?我在想 Grants 有问题,我没有办法看到它们,因为它们在 Mysql 中。

Flo*_*loT 5

如果您从 Ubuntu 存储库安装了 mySQL,则无法像往常一样使用 .root 用户进行身份验证mysql -u root -p

相反,您必须键入sudo mysql,终端将提示您输入 sudo 密码。

这应该可以解决您的问题并允许您连接 mySQL。

我最近遇到了同样的问题,我更喜欢恢复通常的mysql -u root -p方法(也更容易配置一些工具,例如 mySQL Workbench、DBeaver...)。以下是我完成此操作所遵循的步骤:

连接到 mySQL

sudo mysql
Run Code Online (Sandbox Code Playgroud)

创建管理员帐户

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

您可以停在这里并使用管理员用户而不是 root。他们基本上具有相同的访问权限。

如果您想返回 root 用户,可以按照以下步骤操作: 退出 root 连接并使用新的管理员帐户重新连接:

quit; /* mySQL will tell you "Bye" */
mysql -u admin -p
Run Code Online (Sandbox Code Playgroud)

删除root用户

drop user root@localhost;
Run Code Online (Sandbox Code Playgroud)

使用通常的身份验证方法重新创建 root 用户

CREATE USER 'root'@'localhost' IDENTIFIED BY 'the_password_you_wish_here';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

然后断开连接,重新连接 root 并删除 admin 帐户

quit; /* mySQL will tell you "Bye" */
mysql -u root -p
drop user admin@localhost;
Run Code Online (Sandbox Code Playgroud)

现在您将能够连接mysql -u root -p