mysql ERROR 1045 (28000): 错误解决办法

  1. 1

    找到配置文件my.ini  ,然后将其打开,可以选择用记事本打开

    mysql ERROR 1045 (28000): 错误解决办法
  2. 2

    打开后,搜索mysqld关键字

    找到后,在mysqld下面添加skip-grant-tables,保存退出。

    PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下

    mysql ERROR 1045 (28000): 错误解决办法
    mysql ERROR 1045 (28000): 错误解决办法
  3. 3

    保存后重启mySQL

    mysql ERROR 1045 (28000): 错误解决办法
    mysql ERROR 1045 (28000): 错误解决办法
  4. 4

    然后运行cmd

    输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。

    mysql ERROR 1045 (28000): 错误解决办法
  5. 5

    1.进入mysql数据库:

    mysql> use mysql;Database changed

    2.给root用户设置新密码,蓝色部分自己输入:mysql> update user set password=password("123456") where user="root";Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0

    3.刷新数据库mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)

    4.退出mysql:mysql> quitBye

    PS:123456为新密码,用户可根据自己需要修改成自己的密码

    mysql ERROR 1045 (28000): 错误解决办法
  6. 6

    改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你遇到“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)”这个错误信息时,通常意味着你在尝试使用`sudo`命令通过SSH或其他远程访问方式登录到MySQL服务器时,无法验证用户`root`的身份。 ### 解决步骤: #### 步骤一:检查密码设置 首先,确认本地MySQL服务器上`root`用户的密码是否正确。通常,你需要在MySQL服务的配置文件中查找`skip-grant-tables`选项或直接编辑`my.cnf`(Windows系统通常是`my.ini`),并在启动MySQL服务前添加此选项来跳过权限检查,以便能够临时登录并修改密码: ```bash sudo mysqld_safe --skip-grant-tables & ``` 然后登录到MySQL控制台: ```sql mysql -u root ``` 如果能成功登录,说明密码设置正确。如果你无法登录或需要修改密码,接下来进行下一步操作。 #### 步骤二:更新root用户的密码 一旦成功登录MySQL控制台,可以使用SQL命令更改`root`用户的密码: ```sql UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; ``` 将`new_password`替换为你选择的新密码。 #### 步骤三:重启MySQL服务 更新完密码后,记得重启MySQL服务以应用新的设置: ```bash sudo service mysql restart ``` 或者对于Windows环境: ```cmd net stop mysql net start mysql ``` #### 步骤四:恢复`skip-grant-tables`状态 为了防止再次遇到权限拒绝的问题,在完成以上步骤之后,建议将MySQL服务恢复正常状态,即移除`--skip-grant-tables`选项,并重启MySQL服务: ```bash sudo /etc/init.d/mysql stop sudo cp /etc/mysql/my.cnf.bak /etc/mysql/my.cnf # 或其他备份位置 sudo sed -i 's/--skip-grant-tables//g' /etc/mysql/my.cnf sudo service mysql start ``` --- ### 相关问题: 1. **如何验证我在尝试登录时使用的数据库用户名和密码是否正确?** 验证用户名和密码的正确性的最简单方法是直接尝试登录MySQL服务器,查看是否有任何错误消息指示错误的用户名、密码组合或缺少权限等。 2. **如果我忘记了MySQL的root密码怎么办?** 忘记MySQL root密码时,有两种常见解决办法: - 如果在安装MySQL时使用了`--skip-grant-tables`选项,则可以直接使用上述步骤重置密码。 - 如果未使用该选项并且密码已经丢失,通常需要使用操作系统提供的工具或数据恢复服务来访问MySQL配置文件并手动修改密码,这通常涉及更高的技术复杂性和风险。 3. **在哪些安全场景下应该避免使用root账号直接连接数据库?** 应尽量避免使用root账号直接连接数据库,因为root拥有所有权限,可能导致敏感数据泄露或未经授权的修改。推荐的做法是在每个应用程序或业务逻辑层中使用最小权限原则创建特定角色的用户账号,只赋予其执行特定任务所需的最低权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值