首页 文章

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

提问于
浏览
33

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

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

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

12 回答

  • 0

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

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

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

  • 0

    我有同样的问题 .
    我've installed fresh mysql at Ubuntu but I left mysql password empty, and as a result I couldn'以任何方式连接到mysql .
    最近我发现有一个用户表,其中包括名称,主机,密码和一些插件 . 所以对于我的用户root @ localhost mysql在安装时分配了一个名为 auth_socket 的插件,这让Unix用户"root"以无密码登录为mysql用户"root",但不允许以另一个Unix用户身份登录 . 所以要解决这个问题,你应该关闭这个插件并设置通常的身份验证:

    • 打开Linux终端

    • 输入“ sudo mysql
      你会看到"mysql >"这意味着你've connected to mysql as a ' root'Unix用户,你可以输入SQL查询 .

    • 输入SQL查询以更改登录方式:
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
      其中'mysql_native_password'表示 - 关闭auth_socket插件 .

  • -2

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

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

  • 0

    我刚刚遇到这个问题,并且通过一些尝试我想出了 visiting services >> select MySQLxx service , then right click and hit start ,这解决了我的问题,一切都在工作而不需要丢失数据,只是为了那些将来到这个问题的人 .

  • 3

    试试这个,它对我有用!

    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 .

  • 2

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

    (在MAC :)

    系统偏好> Mysql(将列在底部,否则服务器未安装在您的计算机中) .

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

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

  • 29

    试试这个,

    我希望这能帮到您

    • 从其自己的卸载选项中卸载了包括安装程序在内的所有内容 .

    • 未安装与mysql有任何关联的所有程序

    • 从C:\ Program Files中删除了mysql文件夹

    • 从C:\ ProgramData中删除了mysql文件夹

    • 清理了我的注册表然后重新安装了程序,但都是徒劳的 .

    怎么重复:这是我做的:

    • 使用mysql-installer-web-community-5.6.23.0.msi安装它

    • 为了我的目的,我选择"Custom"安装MySQL服务器5.6.22 - X64和MySQL连接器 - >连接器ODBC / 5.3.4 - 64

    • 下一步 - >执行 - (准备配置) - >下一步

    • 配置类型:开发机器,所有默认值(TCP / IP,端口:3306,开放防火墙)

    • 输入MySQL Root密码

    • MySQL用户帐户 - >添加用户(用户名,密码,确定) - >下一步

    • 将MySQL服务器配置为Windows服务(已检查)

    • Windows服务名称:MySQL56(默认)

    • 在系统启动时启动MySQL服务器

    • 这是关键的(BUG在这里):运行服务为...标准系统帐户(已检查 - 但它将被忽略,这是BUG)

    • 下一步 - >执行,安装在启动服务器上挂起,等待一段时间超时(或不要,你的选择) . 当Dialog(可能被其他窗口覆盖)弹出消息“MySQL服务器的配置花费的时间比预期的要长......”,点击OK(等待更长时间)

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

    • 在常规选项卡上单击“开始”按钮开始服务,这里是!服务开始了!单击OK关闭MySQL56 Properties对话框 . 关闭服务对话框 . 关闭管理工具 . 关闭控制面板 .

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

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

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

  • 3

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

    • 转到"Services"
      在"Name"下

    • 找到您的用户名

    • 右键单击并选择"Start"

    转到MySQL工作台并选择“INSTANCE”下的“Startup / Shutdown”,你应该好好去 . 希望这可以帮助遇到这种情况的任何人 .

  • 1

    转到Windows上的搜索栏并搜索 Services . 启动 Services 并在长长的服务列表中查找 MySQLxx (xx取决于您的MySQL版本) . 在MySQLxx上 Right-click 并点击 Start . MySQL应该现在正常工作 .

  • 9

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

  • 0

    在运行MySQL 5.7(及更高版本)的Ubuntu系统中,根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 plugin 进行身份验证:

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

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

  • 3

    这是我的解决方案:

    • 按Ctrl Alt Del

    • 任务管理器

    • 选择“服务”选项卡

    • 在名称下,右键单击"MySql"并选择开始

相关问题