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

时间:2014-09-11 02:10:06

标签: mysql database connection

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

  

无法连接到127.0.0.1:3306的mysql,用户root权限已被拒绝,用户root' @' localhost'(使用密码:是)

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

35 个答案:

答案 0 :(得分: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]';

如果您的连接在此处被接受,则它类似于工作台配置问题。

答案 1 :(得分:9)

我遇到了同样的问题。
我在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插件。

答案 2 :(得分:4)

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

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

答案 3 :(得分:4)

尝试一下,它对我有用!

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。

答案 4 :(得分:3)

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

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

答案 5 :(得分:3)

MySQL Installer Community -> MySQL Server Reconfigure -> Next -> Next -> Connection Name [Local instance or any other name] -> 点击 Password - Store in Vault...并添加密码然后 -> Test联系。 它对我有用:)

答案 6 :(得分:3)

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

答案 7 :(得分:2)

  

在运行MySQL 5.7(及更高版本)的Ubuntu系统中,默认情况下,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插件进行了身份验证。要将根帐户配置为使用密码进行身份验证,请运行以下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;

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

答案 8 :(得分:2)

您应该安装在localhost中托管的mysql服务器。然后安装工作台。如果你得到错误GOTO:

(在MAC中:)

系统首选项> Mysql(将在底部列出,否则服务器未安装在您的计算机中)。

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

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

答案 9 :(得分:1)

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

答案 10 :(得分:1)

试试这个,

我希望这会对你有所帮助

  1. 从其自己的卸载选项中卸载包括安装程序在内的所有内容。
  2. 卸载所有与mysql相关的程序
  3. 从C:\ Program Files
  4. 删除了mysql文件夹
  5. 从C:\ ProgramData
  6. 删除了mysql文件夹
  7. 清理我的注册表,然后重新安装该程序,但都是徒劳的。
  8. 如何重复: 这是我做的:

    1. 使用mysql-installer-web-community-5.6.23.0.msi
    2. 安装
    3. 出于我的目的,我选择了“自定义”安装MySQL服务器5.6.22 - X64和MySQL连接器 - > Connector ODBC / 5.3.4 - 64
    4. 下一步 - >执行 - (准备配置) - >下一步
    5. 配置类型:开发机器,所有默认值(TCP / IP,端口:3306,开放式防火墙)
    6. 输入MySQL Root Password
    7. MySQL用户帐户 - >添加用户(用户名,密码,确定) - >下一步
    8. 将MySQL服务器配置为Windows服务(已检查)
    9. Windows服务名称:MySQL56(默认)
    10. 在系统启动时启动MySQL服务
    11. 这是很重要的(BUG就在这里):运行服务为...标准系统帐户(已检查 - 但它将被忽视,这是BUG)
    12. 下一步 - >执行,安装在启动服务器上挂起,所以等待一段时间超时(或不要,你的选择)。当Dialog(可能被其他窗口覆盖)弹出消息“MySQL服务器的配置花费的时间比预期的要长......”,点击OK(等待更长时间)
    13. 建议修复: 12.同时转到开始 - >控制面板 - >管理工具 - >服务 - >找到MySQL56,右键单击它 - >属性 - >选择登录选项卡,这里是BUG - >虽然选择了本地系统帐户,但选择“此帐户:网络服务(带有一些密码)” - >选择登录为:本地系统帐户,允许服务与桌面交互 - >应用 - >返回标签

      1. 在常规标签上点击“开始”按钮开始服务,这里就是!服务开始了!单击OK关闭MySQL56 Properties对话框。关闭服务对话框。关闭管理工具。关闭控制面板。

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

      3. 使用完成确认 - &gt;下一步 - &gt;完 就是这样,快乐的MySQL-ing:)

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

答案 11 :(得分:1)

查看了许多解决方案答案之后,这是对我有用的摘要。 起初我只安装了Workbench 6.2,当连接到localhost时失败了。

第一步:检查您是否已经安装了mysql服务器。如果没有,请下载并安装。

步骤2:mysql服务器配置建议使用强密码,忽略它,选择旧密码。

第3步:启动mysql服务器(Windows系统:服务-> mysql->启动)

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

答案 12 :(得分:1)

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

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

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

enter image description here

答案 13 :(得分:1)

我遇到了同样的问题,但是对我有用。

  1. 检查是否已安装mysql

    enter image description here

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

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

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

(对不起,我的英语,请同意解决我的问题)

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

答案 14 :(得分:0)

我在使用 MySQL 8.0.23 版时遇到了同样的问题。

我是通过以下方式解决的:

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

2。在 MySQL Server 中,我点击了“重新配置”。

3。然后我点击以下步骤,直到我到达“帐户和 角色”,然后为“root”设置密码

4。最后在 SQL Workbench 中,我转到了管理服务器连接 和 单击“在保险柜中存储...”,我在其中输入了相同的密码作为 在第 3 步

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

希望对你有帮助

答案 15 :(得分:0)

在我的情况下,解决方案是打开 MySQL 安装程序社区,然后在快速操作下按重新配置设置然后它工作正常

答案 16 :(得分:0)

我刚刚遇到了同样的问题,但潜在的问题有点不同...... 我试图连接到 MySQL Workbench 中的 localhost,但它甚至没有找到连接的 SQL Server 实例, 问题是,mysql 服务没有安装在 Windows 下。所以我以管理员身份打开cmd并输入mysqld --install,重新启动工作台并正确检测到mySQL,我可以连接并执行所有其他与mysql相关的命令......

答案 17 :(得分:0)

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

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

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

在它之后你应该填写authen。使用旧身份验证。>> 角色>> 设置通行证。 >> 然后不要改变任何东西.. 去执行它。就是这样。

答案 18 :(得分:0)

我也面临同样的问题,最后,我得到了解决方案...

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

答案 19 :(得分:0)

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

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

答案 20 :(得分:0)

Windows10上对我的解决方案:

  1. 转到Services,然后找到STOP
  2. 打开Notepad并输入以下行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

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

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

cd“ C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin”

  1. 输入以下内容:

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

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

  2. 转到ServicesSTART您的MYSQL服务。

答案 21 :(得分:0)

使用Vast清理后,我遇到了这个问题。基本上,mysql实例是在PC启动时启动的,即使在不使用时,它也始终在后台处于活动状态。

我误以为已停止

无法通过127.0.0.1:3306连接到mysql,并且拒绝用户'root'@'localhost'的用户root访问(使用密码:是)

对我有用的解决方案:

在mysql命令行客户端中输入。打开后,系统会提示您输入密码

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

最后,即使您切换回工作台,它仍然可以工作。

答案 22 :(得分:0)

对于Mac,

我通过重新输入root密码来解决它。

System Preferences > MYSQL > Initialize Database > Enter password

Initialize Database

答案 23 :(得分:0)

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

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

我希望能解决您的问题

答案 24 :(得分:0)

以用户管理员(可能是root用户)访问数据库。检查对数据库的正确的一个用户特权。

mysql >SHOW GRANTS FOR <username>;

从本地主机向数据库分配完整的用户特权

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;

答案 25 :(得分:0)

在Mac上,不幸的是,以上答案无法解决,导致ERROR 1045 (28000): Access denied for user 'root'@'localhost'

执行以下操作对我有用:

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

尴尬地带我过去,想出希望它对其他人有帮助的

答案 26 :(得分:0)

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

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

我花了比我要承认的更长的时间来发现我的新设备未安装MySQL服务器。您可以将其下载到dev.mysql.com。由于某种原因,它首先更新了我的MySQL工作台,然后才可以安装MySQL服务器(也许我读得很快)。

如果尚未安装MySQL服务器,请确保单击this screen上的添加

答案 27 :(得分:0)

好吧,我在Mac os上进行安装时遇到了这个问题,我多次尝试删除mysql 8.o并重新安装,对于我的老式mac机,我发现的唯一解决方案是采用CAKEBREW服务并下载5.7 mysql。 +一个旧的Mysql Workbench5。而且,一切工作正常,我将等到有人解决此问题。

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

答案 28 :(得分:0)

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

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

答案 29 :(得分:0)

  1. sudo mysql -u根-p
  2. mysql>使用mysql_native_password通过'abc @ 123'标识ALTER USER'root'@'localhost';
  3. sudo mysql-workbench

答案 30 :(得分:0)

这可能是由于版本问题引起的。我遇到了同样的问题,我降级了mySQL工作台并进行了尝试。它起作用了。

答案 31 :(得分:0)

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

答案 32 :(得分:0)

我知道这已经过时了,但我也遇到过这个问题,但找到了一个对我有用的修复方法:

  1. 转到“服务”
  2. 在“名称”下找到您的用户名
  3. 右键单击并选择“开始”
  4. 转到MySQL工作台并选择“INSTANCE”下的“Startup / Shutdown”,你应该好好去。希望这可以帮助遇到这种情况的任何人。

答案 33 :(得分:-1)

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

答案 34 :(得分:-3)

这是我的解决方案:

  • 按Ctrl + Alt + Del
  • 任务管理员
  • 选择“服务”选项卡
  • 在名称下,右键单击&#34; MySql&#34;然后选择开始