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

Posted

技术标签:

【中文标题】无法在 127.0.0.1:3306 连接到 mysql,用户 \'root\'@\'localhost\' 的用户 root 访问被拒绝(使用密码:YES)【英文标题】:Failed to connect to mysql at 127.0.0.1:3306 with user root access denied for user 'root'@'localhost'(using password:YES)无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES) 【发布时间】:2014-11-04 20:11:57 【问题描述】:

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

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

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

【问题讨论】:

什么是tenlet? @ydoow 试试***.com/questions/16556497/… 【参考方案1】:

首先检查是工作台还是连接问题。

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]';

如果你的连接在这里被接受,这就像是工作台配置问题。

【讨论】:

我还没有任何数据库连接。即使我尝试使用 localhost 作为我的主机名,它仍然无法正常工作。 @ydoow 'mysql' 不是内部或外部命令、可运行程序或批处理文件。 -- 输入mysql -u root -p -h 127.0.0.1 -P 3306 后出现此消息。@ydoow 在 MySQL bin 目录下运行命令。通常该目录类似于 C:\Program Files\MySQL\MySQL Server x.x 什么是“数据库名称”?,我刚刚安装了它。 输入密码后得到这个:ERROR 2005 (HY000): Unknown MySQL server host '-P' (11001)【参考方案2】:

不知道这是怎么发生的,但我遇到了同样的问题。我不得不重置我的root密码: http://www.jovicailic.org/2012/04/reset-forgotten-mysql-root-password-under-windows/

但是在我之前的数据库被删除或新连接没有连接到它们之后。无论哪种方式,我都无法通过工作台访问它们。但是我可以再次使用 MySQL,这对我来说是一个胜利

【讨论】:

我后来发现这个错误与 Windows 更新有关。我不知道为什么,但是每当 Windows (7) 在我的服务器上自动更新时,我都会遇到同样的错误。我咨询了我的 IT 部门,但他们也想不通。【参考方案3】:

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

(在 MAC 中:)

系统偏好>Mysql(会在底部列出,否则你的机器上没有安装服务器)。

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

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

【讨论】:

解决了我的问题。我尝试连接,但 MySQL 没有启动 lol【参考方案4】:

试试这个,

希望对你有帮助

    从它自己的卸载选项中卸载了包括安装程序在内的所有内容。 卸载所有与mysql相关的程序 从 C:\Program Files 中删除了 mysql 文件夹 从 C:\ProgramData 中删除了 mysql 文件夹 清除了我的注册表,然后重新安装了程序,但都是徒劳的。

如何重复: 这是我所做的:

    用 mysql-installer-web-community-5.6.23.0.msi 安装 出于我的目的,我选择“自定义”安装 MySQL 服务器 5.6.22 - X64 和 MySQL 连接器 -> 连接器 ODBC/5.3.4 - 64 下一步->执行-(准备配置)->下一步 配置类型:开发机,全部默认(TCP/IP,端口:3306,打开防火墙) 输入 MySQL 根密码 MySQL 用户帐户-> 添加用户(用户名、密码、OK)-> 下一步 将 MySQL 服务器配置为 Windows 服务(已检查) Windows 服务名称:MySQL56(默认) 在系统启动时启动 MySQL 服务 这很重要(BUG 在这里):将服务运行为... 标准系统帐户(检查 - 但它会被忽略,这是 BUG) 下一步 -> 执行,安装在启动服务器上挂起,所以等待一段时间超时(或者不要,您的选择)。当对话框(可能被其他窗口覆盖)弹出消息“MySQL 服务器的配置花费的时间比预期的要长...,这里单击确定(等待更长时间)

建议的修复: 12.同时转到开始->控制面板->管理工具->服务->找到MySQL56,右键单击它->属性->选择登录选项卡,这是错误->虽然选择了本地系统帐户,但不知何故“此帐户:选择了网络服务(带有一些密码)-> 选择登录为:本地系统帐户,允许服务与桌面交互-> 应用-> 返回常规选项卡

    在常规选项卡上单击“开始”按钮启动服务,就在这里!服务开始了!单击确定关闭 MySQL56 属性对话框。关闭服务对话框。关闭管理工具。关闭控制面板。

    到那时(当您关闭这些对话框时),当您查看 MySQl 安装程序对话框时,所有步骤都已完成并检查:启动服务器、应用安全性...创建用户帐户..更新开始菜单链接

    用完成确认 -> 下一步 -> 完成 就是这样,快乐的 MySQL :)

来源:https://bugs.mysql.com/bug.php?id=76476

【讨论】:

【参考方案5】:

我现在刚刚遇到这个问题,经过一些尝试,我发现访问服务>>选择 MySQLxx 服务,然后右键单击并点击开始,这解决了我的问题,一切都在不需要的情况下工作丢失数据。

【讨论】:

【参考方案6】:

我知道这很旧,但我也遇到过这个问题,但找到了一个对我有用的解决方法:

    转到“服务” 在“名称”下找到您的用户名 右键单击并选择“开始”

转到您的 MySQL 工作台并选择“INSTANCE”下的“Startup / Shutdown”,您应该一切顺利。希望这对遇到此问题的人有所帮助。

【讨论】:

【参考方案7】:

这是我的解决方案:

按 Ctrl + Alt + Del 任务管理器 选择服务选项卡 在名称下,右键单击“MySql”并选择开始

【讨论】:

【参考方案8】:

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

    打开 Linux 终端 输入“sudo mysql” 您将看到“mysql >”,这意味着您已以“root”Unix 用户身份连接到 mysql,并且可以键入 SQL 查询。 输入 SQL 查询以更改登录方式:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; 其中 'mysql_native_password' 表示 - 关闭 auth_socket 插件。

【讨论】:

检查这是否导致问题的一个好方法是运行sudo mysql,如果它让你进入这意味着 auth_socket 插件已启用并且可能导致问题。顺便说一句,答案很好,谢谢。 当使用sudo mysql时,我面临这个:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded: The specified module could not be found. Library path is 'caching_sha2_password.dll'【参考方案9】:

试试这个,它对我有用!

sudo mysql -u root -p

在终端里面输入:

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

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

【讨论】:

这是在哪里输入的?工作台内有终端吗? ERROR 1410 (42000): 您不能使用 GRANT 创建用户 在终端中使用sudo mysql -u root -p 时,没有任何反应。那正确吗?没有输出,没有错误.. 因为 mysql 在 docker 上运行。我尝试了这些步骤,但它不起作用。请提出任何解决方案。【参考方案10】:

转到 Windows 上的搜索栏并搜索服务。 启动 Services 并在长长的服务列表中查找 MySQLxxxx 取决于您的 MySQL 版本)。 右键单击 MySQLxx,然后点击开始。 MySQL 现在应该可以正常工作了。

【讨论】:

【参考方案11】:

我将默认密码从“”更改为空白

【讨论】:

问题真的围绕着这个吗?【参考方案12】:

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

如果您希望在以 root 身份连接 MySQL 时使用密码,则需要将其身份验证方法从 auth_socket 切换为 mysql_native_password . source

从终端打开 MySQL 提示符:

$ sudo mysql

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

mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;

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

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

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

mysql > FLUSH PRIVILEGES;

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

mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;

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

【讨论】:

我可能很厚,但我想尽办法解决这个问题,解决方案的第一部分只是以 root 身份执行 #mysql (或者 sudo 应该可以工作)。然后我可以添加 root 以外的用户(在 ubuntu 上,我不知道 root 密码)。【参考方案13】:

这可能由于版本问题而发生。我遇到了同样的问题,我降级了我的 mySQL 工作台并尝试了它。成功了。

【讨论】:

【参考方案14】:

在查看了这么多解决方案的答案后,这是我的总结,对我有用。 一开始我只安装了workbench 6.2,连接localhost失败了。

step1:检查你是否安装了mysql服务器。如果没有,请下载并安装。

step2:mysql服务器配置推荐强密码,忽略它,选择legacy密码。

step3:启动mysql服务器(windows系统:services-->mysql-->start)

第四步:打开工作台并创建本地连接。

【讨论】:

【参考方案15】:
    sudo mysql -u root -p mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc@123'; sudo mysql-workbench

【讨论】:

【参考方案16】:

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

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

【讨论】:

如果它已经在运行怎么办? 这对我有用,谢谢【参考方案17】:

我遇到了这个问题,在 Mac os 上安装期间,我多次尝试删除 mysql 8.O 并重新安装,对于我的老式 mac,我发现的唯一解决方案是使用 CAKEBREW 服务并下载 5.7 mysql + 一个旧的 Mysql Workbench 5。此外,一切正常,我会等到有人解决这个问题。

希望您找到其他解决方案。

【讨论】:

【参考方案18】:

TL;DR:没有安装 MySQL 服务器,只有 MySQL 工作台。

尝试在新计算机上设置 GitHub 项目后,我遇到了同样的问题。我注意到 Visual Studio 2019 给出了我的程序无法连接到 MySQL 服务器的错误,所以我打开了我的 MySQL Workbench,我也无法连接。

我花了很长时间才发现我的新设备没有安装 MySQL 服务器。您可以在dev.mysql.com 下载它。出于某种原因,它首先更新了我的 MySQL 工作台,然后我才能安装 MySQL 服务器(也许我读得很快)。

如果您还没有安装 MySQL 服务器,请确保点击this screen 上的添加

【讨论】:

【参考方案19】:

不幸的是,在 mac 上,上面的答案不起作用导致ERROR 1045 (28000): Access denied for user 'root'@'localhost'

执行以下操作对我有用:

sudo su
mysql -uroot
set password = password("password");

我花了很长时间才弄清楚希望它对其他人有帮助。

【讨论】:

【参考方案20】:

以用户管理员身份访问数据库(可能是 root 用户)。检查数据库的正确用户权限。

mysql >SHOW GRANTS FOR <username>;

从 localhost 为数据库分配完全用户权限

mysql> GRANT ALL PRIVILEGES ON <databasename>.* TO '<username>'@'localhost' IDENTIFIED BY '<password>';
mysql> FLUSH PRIVILEGES;

如果从第三方程序(例如 MySQL WORKBENCH)连接到数据库时出错,请从任何主机为用户分配访问数据库的权限 MYSQL 从任何主机授予对数据库的所有权限

mysql> GRANT ALL PRIVILEGES ON <databasename>.* TO '<username>'@'%' IDENTIFIED BY '<password>';
mysql> FLUSH PRIVILEGES;

【讨论】:

【参考方案21】:

我有同样的问题,但它对我有用。

    检查你是否安装了mysql

如果你没有安装mysql,从这个链接下载:https://dev.mysql.com/downloads/mysql/

    按照此说明进行安装 https://dev.mysql.com/doc/mysql-osx-excerpt/5.7/en/osx-installation-pkg.html

    您可以毫无问题地测试连接。

(对不起我的英语,我同意请修复我)

我希望我有所帮助。 问候。

【讨论】:

【参考方案22】:

检查您是否正在安装 MySQL 服务器,我遇到了这个问题并通过以下步骤解决:

1- Windows > MySQL 安装程序 - 社区 2-然后点击添加>然后选择MySQL服务器和下一步。 .....

希望能解决你的问题

【讨论】:

【参考方案23】:

对于 Mac,

我通过重新输入root密码来修复它。

System Preferences &gt; MYSQL &gt; Initialize Database &gt; Enter password

【讨论】:

【参考方案24】:

我在使用 Vast 清理后遇到了这个问题。基本上 mysql 实例在 PC 启动时启动,即使不使用它也会一直在后台活动。

我错误地停止了它

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

对我有用的解决方案:

输入 mysql 命令行客户端。一打开就会提示输入密码

-> mysql -u root -p -h 127.0.0.1 -P 3306

最后,即使您切换回工作台,它也能正常工作。

【讨论】:

【参考方案25】:

Windows10我的解决方案:

    转到Services 并找到MYSQL 服务,而不是STOP。 打开Notepad并输入以下行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

将文件保存到硬盘驱动器的根目录 (C:\)。选择一个有意义的文件名,例如 mysql-init.txt。

    使用命令提示符导航到 MySQL 目录(以管理员身份运行):

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

    输入以下内容:

mysqld --init-file=C:\mysql-init.txt

    现在,您可以使用新密码以 root 身份登录 MySQL 服务器,并且可以删除 C:\mysql-init.txt 文件。

    转到ServicesSTART 您的MYSQL 服务。

【讨论】:

【参考方案26】:

检查 Mysql 服务器是否已启动。 它可以通过以下方式运行:CMD => "MySQL Installer"

观看视频: https://www.youtube.com/watch?v=nlefNPcb_Qg&ab_channel=NateBoorsma

【讨论】:

【参考方案27】:

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

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

【讨论】:

这应该是在 Windows 上检查的第一件事!解决了我的问题,谢谢! 谢谢我遇到了同样的问题,这就像一个魅力! 了解如何在重新配置服务器时导航向导可能会很有用:ladvien.com/data-analytics-mysql-localhost-setup(我与该链接无关,只是找到了它)【参考方案28】:

我认为问题在于我们正在尝试连接到本地服务器 没有运行。

我们需要先运行MySQL 服务器然后连接它。

只需转到任务管理器 > 服务 找到MYSQL80,然后启动服务。

【讨论】:

【参考方案29】:

我也遇到了同样的问题,终于找到了解决办法……

    打开 MySQL 安装程序。 之后,您会在 MySQL 服务器的前面看到 Reconfigure 选项。点击它。 之后,您必须在不更改任何默认设置的情况下单击“下一步”按钮。

【讨论】:

提供更多见解,说明为什么这会解决问题【参考方案30】:

我也遇到过这个问题。但我处理这个解决方案。

    只需点击右侧 MySQL Workbench 应用程序>> 然后打开文件位置。在这里你可以找到Window的安装程序>> 打开并启动安装程序。这是安装配置。

打开它,然后选择您的 MySQL 服务器并重新配置。

在它之后,你应该填写authen。

    使用旧版身份验证.. >> 角色>> 设置通行证。 >> 然后不要改变任何东西..去执行它。就是这样。

【讨论】:

以上是关于无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)的主要内容,如果未能解决你的问题,请参考以下文章

Workbench 说:使用 root 用户通过 34.xxx.xxx.xxx:22 处的 SSH 隧道连接到 127.0.0.1:3306 处的 MySQL 失败

无法连接到数据库服务器(mysql 工作台)

Sequelize:无法连接到 SQL Server - 传递的端口不正确

在 127.0.0.1:3306 上添加客户端到服务器端口转发规则失败

使用 SSH 隧道时无法通过套接字错误连接到本地 MySQL 服务器

SSH端口转发