在 Linux中登录 mysql 遇到的异常信息

本文详细介绍了在Linux环境中遇到MySQL1064错误,表现为Access denied for user ''@'localhost'时的解决方案。问题源于存在一个空用户名的配置。解决步骤包括免密登录MySQL,删除user表中的空用户名,重启服务并恢复正常登录。通过此方法可以成功访问并修改MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.错误信息:

提示:在 Linux 系统中登录 mysql 时和进入到 mysql 遇到异常信息。

报:Mysql 1064错误代码:Access denied for user ''@'localhost' 错误。


问题描述

提示:执行以下操作报同样的异常。

例如:使用密码无法登录(免密登录),免密登录后又无法修改密码、在创建数据库时都报同样的异常。在使用show databses进行数据库查询时,只能显示 testinformation_schema两个数据库,mysql和其它数据库都没有显示。


原因分析:

例如:由localhost和 hadoop1映射到一个为空的用户名,导致的异常信息 。


解决方案:

  • 免密登录mysql(异常原因,密码无法登录);

  • 选择mysql数据库,删除user表中的所谓的空用户名。

  1. 关闭mysql服务。

    • service mysql stop

  2. mysql 安装的目录中找到 my.cnf 文件在文件末尾添加上 skip-grant-tables 用来跳过密码验证。

    • 文件目录(注:在 Linux 的远程软件中比较好找到该文件)。

    • 文件末尾添加内容:skip-grant-tables

  3. 重启mysql 服务。

    • service mysql restart

  4. 进行mysql免密登录,(注:看图操作)。

    • mysql -u root -p

  5. 此时执行 show databases 就能将所有数据库查询出来。

     

  6. 选择mysql数据库。

    • 输入:use mysql

  7. 查看mysql数据库中的信息,并且可以看到为空的用户名。

    • select user,host from user;

    • 删除掉用户名为空的就能解决以上问题了。

  8. 删除为空用户名

    • delete user from user where user='';

  9. 删除为空用户后。

  10. 退出mysql

    • 退出:quit

  11. 删除my.cnf文件中的skip-grant-tables;再进行重新登录即可,并修改密码!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值