ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

什么是天律? @ydoow

B
Bryan

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

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 xx
什么是“数据库名称”?,我刚刚安装了它。
我在输入密码后得到这个:ERROR 2005 (HY000): Unknown MySQL server host '-P' (11001)
V
Vladimir Voznyi

我有同样的问题。我在 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'
M
Mihai Chelaru

试试这个,它对我有用!

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 上运行。我尝试了这些步骤,但它不起作用。请提出任何解决方案。
C
Community

在运行 MySQL 5.7(及更高版本)的 Ubuntu 系统中,root MySQL 用户默认设置为使用 auth_socket 插件进行身份验证,而不是使用密码。这在许多情况下允许更高的安全性和可用性,但是当您需要允许外部程序(例如,phpMyAdmin)访问用户时,它也会使事情变得复杂。如果您在以 root 身份连接到 MySQL 时更喜欢使用密码,则需要将其身份验证方法从 auth_socket 切换到 mysql_native_password。资源

从终端打开 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 密码)。
S
Supriyo Banerjee

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

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


如果它已经在运行呢?
这对我有用,谢谢
R
Renjith Bhattathiripad

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

(在 MAC 中:)

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

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

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


解决了我的问题。我试图连接,但 MySQL 没有启动大声笑
r
radbyx

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


M
Mario Petrovic

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

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


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

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

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


此后我发现此错误与 Windows 更新有关。我不知道为什么,但是每当 Windows (7) 在我的服务器上自动更新时,我都会遇到同样的错误。我咨询了我的 IT 部门,但他们也无法弄清楚。
R
Ragip Gashi

MySQL Installer Community -> MySQL Server Reconfigure -> Next -> Next -> Connection Name [Local instance or any other name] -> 点击 Password - Store in Vault... 并添加密码,然后 -> 测试连接。这个对我有用 :)


V
Venkat Kallem

尝试这个,

我希望这能帮到您

从它自己的卸载选项中卸载了包括安装程序在内的所有内容。卸载所有与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 下一步 -> 执行-(准备配置)-> Next Config type: Development machine, all defaults (TCP/IP, Port: 3306, Open firewall) 输入 MySQL Root Password MySQL user Accounts -> Add user (username, password, OK) ->下一步将 MySQL 服务器配置为 Windows 服务(已检查) Windows 服务名称:MySQL56(默认)在系统启动时启动 MySQL 服务这很重要(错误在这里):将服务运行为... 标准系统帐户(已检查 - 但它会被忽视,那是BUG)下一步->执行,安装在启动服务器上挂起,所以等待一段时间超时(或者不要,你的选择)。当对话框(可能被其他窗口覆盖)弹出消息“MySQL服务器的配置花费的时间比预期的要长...,这里单击确定(等待更长时间)

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

在常规选项卡上单击“开始”按钮以启动服务,就在这里!服务开始了!单击确定关闭 MySQL56 属性对话框。关闭服务对话框。关闭管理工具。关闭控制面板。到那时(当您关闭这些对话框时),当您查看 MySQl 安装程序对话框时,所有步骤都已完成并检查:启动服务器,应用安全性... 创建用户帐户.. 更新开始菜单链接以完成确认 -> 下一步 - >完成就是这样,快乐的MySQL-ing :)

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


j
jseahhh

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


s
sarah s

在查看了这么多解决方案答案之后,这是我的总结,对我有用。我一开始只安装了工作台 6.2,当连接到 localhost 时它失败了。

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

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

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

step4:打开工作台并创建本地连接。


M
Marcos QP

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

检查你是否安装了mysql

如果您没有安装 mysql,请从此链接下载:https://dev.mysql.com/downloads/mysql/

按照此说明安装 https://dev.mysql.com/doc/mysql-osx-excerpt/5.7/en/osx-installation-pkg.html 您可以毫无问题地测试连接。

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

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


C
Chandan

我认为问题是我们正在尝试连接到未运行的本地服务器。

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

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

https://i.stack.imgur.com/7CCPs.png


A
Artem Arkhipov

sudo mysql -u root -p mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc@123'; sudo mysql-工作台


S
Shaon Talukder Dwip

别担心。只需从开始菜单或您的程序文件打开 MySql Installer Community 并重新配置“Mysql Server”和“Samples and Example”专注于 Samples and Example config... 和 Mysql Server 上的 tik 标记,输入您的密码,点击检查,最后点击下一步并完成。希望你会看到成功的消息。谢谢你


T
Tincho

我对 MySQL 8.0.23 版有同样的问题。

我通过以下方式解决了它:

1. 再次打开 Windows 的 msi 安装程序。

2. 在 MySQL 服务器中,我点击了“重新配置”。

3. 然后我点击以下步骤,直到进入“帐户和角色”,并在那里设置了“root”的密码。

4. 最后在 SQL Workbench 中,我转到 Manage Server Connections 并单击“store in Vault ...”,在那里我输入了与步骤 3 中相同的密码。

PS:这个过程还在windows上创建了MySQL服务,这也有助于解决这个问题。

我希望这是有帮助的


N
Nishita Giduturi

尝试在工作台上创建 mySQL 连接时,我也遇到了同样的问题。我的问题是我从 mysql.com 下载了不兼容的 mySQL .dmg 文件。重新安装 'macOS 11 (x86, 64-bit), DMG Archive' 而不是 'macOS 11 (ARM, 64-bit), DMG Archive' 解决了我的问题。我建议您尝试为您的操作系统重新安装兼容的 dmg 文件

谢谢。


正如目前所写的那样,您的答案尚不清楚。请edit添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以找到有关如何写出好答案的更多信息in the help center
A
Adan De Leon

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

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

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


N
Nizar Jalal

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


问题真的围绕着这个吗?
N
Nadir Marikkar

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


F
FRC

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

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


R
Ruben Szekér

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

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

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

如果您尚未安装 MySQL 服务器,请确保点击 this screen 上的 add


K
Kai

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

执行以下操作对我有用:

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

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


E
Eric Korolev

以用户管理员(可能是 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;

M
Mohamad Alhamid

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

1- Windows > MySQL 安装程序 - 社区 2- 然后单击 Add > 然后选择 MySQL Server 和下一步。 ......

我希望能解决你的问题


M
Mohammad Zaid Pathan

对于 Mac,

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

System Preferences > MYSQL > Initialize Database > Enter password

https://i.stack.imgur.com/B5WHk.png


D
Dushyanth Sunny

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

我错误地停止了它

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

对我有用的解决方案:

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

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

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


A
Aleksandra

我在 Windows10 上的解决方案:

转到服务并找到 MYSQL 服务,然后停止它。打开记事本并输入以下行:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

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

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

cd "C:\Program Files\MySQL\MySQL 服务器 8.0\bin"

输入以下内容:

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

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