无法连接到127.0.0.1:3306的mysql,用户root访问被拒绝用户'root'@'localhost'(使用密码:YES)

cpl*_*cpl 36 mysql database connection

我一直在尝试在工作台上创建一个新的数据库连接.但是,每次测试连接时都会显示一条错误消息

无法连接到127.0.0.1:3306的mysql,用户root访问被拒绝用户'root'@'localhost'(使用密码:YES)

我不知道这个错误的原因是什么.我已经尝试卸载并重新安装我的工作台6.1和mysql服务器5.6,但错误仍未解决.

ydo*_*oow 30

首先检查它是否是工作台或连接问题.

1)在你的窗口运行'cmd'打开终端

试试两个

图2a) mysql -u root -p -h 127.0.0.1 -P 3306

图2b) mysql -u root -p -h > localhost -P 3306

3)如果连接良好,您将收到密码提示,看看您是否可以使用正确的密码连接.

如果您的连接被拒绝,只需授予权限

mysql >GRANT ALL ON [DatabaseName].* TO 'root'@'127.0.0.1' IDENTIFIED BY '[PASSWORD]';
Run Code Online (Sandbox Code Playgroud)

如果您的连接在此处被接受,则它就像工作台配置问题.

  • 'mysql'不被识别为内部或外部命令,可操作程序或批处理文件. - 输入mysql -u root -p -h 127.0.0.1 -P 3306后出现此消息.@ ooow (6认同)
  • 输入密码后我收到此消息:“错误 2005 (HY000): 未知的 MySQL 服务器主机 '-P' (11001)” (3认同)
  • 我还没有任何数据库连接。即使我尝试使用 localhost 作为主机名,它仍然不起作用。@ydoow (2认同)
  • 在 MySQL bin 目录中运行该命令。通常该目录类似于 C:\Program Files\MySQL\MySQL Server xx (2认同)
  • “数据库名称”是什么?,我刚刚安装了它。 (2认同)
  • C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin> mysql -u root -p -h 127.0.0.1 -P 3306 输入密码:(隐藏密码)错误1045(28000):用户'root'@'访问被拒绝localhost'(使用密码:YES) (2认同)
  • 按照您的步骤操作,但它拒绝我访问。 (2认同)

小智 13

我有同样的问题.
我在Ubuntu上安装了新的mysql但是我把mysql密码留空了,结果我无法以任何方式连接到mysql.
最近我发现有一个用户表,其中包括名称,主机,密码和一些插件.所以对于我的用户root @ localhost mysql安装时分配了一个名为auth_socket的插件,这让Unix用户"root"登录为mysql用户"root"而没有密码,但是不允许以另一个Unix用户身份登录.所以要解决这个问题,你应该关闭这个插件并设置通常的身份验证:

  1. 打开Linux终端
  2. 输入" sudo mysql "
    你会看到"mysql>",这意味着你已经作为'root'Unix用户连接到mysql,你可以输入SQL查询.
  3. 输入SQL查询以更改登录方式:
    ALTER USER'root'@'localhost'使用mysql_native_password标识BY'your_new_password';
    其中'mysql_native_password'的意思是 - 关闭auth_socket插件.


小智 9

在运行 MySQL 5.7(及更高版本)的 Ubuntu 系统中,root MySQL 用户默认设置为使用auth_socket 插件而不是密码进行身份验证。在许多情况下,这允许更高的安全性和可用性,但是当您需要允许外部程序(例如,phpMyAdmin)访问用户时它也会使事情复杂化。

如果您在以root身份连接到 MySQL 时更喜欢使用密码,则需要将其身份验证方法从auth_socket 切换mysql_native_password来源

从终端打开 MySQL 提示符:

$ sudo mysql
Run Code Online (Sandbox Code Playgroud)

接下来,使用以下命令检查每个 MySQL 用户帐户使用的身份验证方法:

mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)

您将看到 root 用户实际上使用 auth_socket 插件进行身份验证。要将 root 帐户配置为使用密码进行身份验证,请运行以下ALTER USER命令。请务必将密码更改为您选择的强密码:

mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Run Code Online (Sandbox Code Playgroud)

然后,运行FLUSH PRIVILEGES它告诉服务器重新加载授权表并使您的新更改生效:

mysql > FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

再次检查每个用户使用的身份验证方法,以确认 root 不再使用auth_socket 插件进行身份验证:

mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)

您将在输出中看到 root MySQL 用户现在使用密码进行身份验证。


小智 5

您应该安装在本地主机中托管的 mysql 服务器。然后安装工作台。如果您仍然收到错误 GOTO:

(在 MAC 中:)

系统偏好设置>Mysql(会在底部列出,否则您的机器中未安装服务器)。

检查服务器状态并启动Mysql 服务器。

尝试使用默认端口号连接到 localhost。


Cri*_*uck 5

我现在刚刚遇到这个问题,通过一些尝试,我发现访问服务 >> 选择 MySQLxx 服务,然后右键单击并点击开始,这解决了我的问题,一切正常,无需丢失数据。


Dio*_*sma 5

试试这个,对我有用!

sudo mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

在终端内输入:

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

然后在MySQL Workbench中编辑连接并将根名称更改为admin。


小智 5

我在 Windows 中遇到了同样的问题。

  1. 任务管理器中的转到服务
  2. 启动名为 MySQL80 的服务
  3. 重启工作台


小智 5

只需返回安装程序并添加 SQL 服务器,如果它已经存在,只需重新配置它并从那里添加密码,

返回到您的工作台并删除当前用户并使用您在服务器配置期间使用的相同密码创建一个新用户