linux环境下登录mysql报错Access denied 以及修改root密码

一、解决:Access denied for user ‘root‘@‘localhost‘ (using password: YES)

1、Centos登录MySQL报错

 

 2、在mysql配置文件内mysql.cnf,添加如下代码,绕过密码验证:

  skip-grant-tables

 3、重新登录mysql系统修改, mysql -uroot -p 回车

       Enter password: 回车(这里不用输密码,直接回车跳过)

       MySQL 5.7及以后版本,密码字段是  authentication_string

复制代码
mysql>use mysql;

mysql> update user set authentication_string=password("新密码") where user='root';        【密码注意大小写,密码要用password加密】

mysql> flush privileges;

mysql> exit;     
复制代码

 4、注释掉前面加的绕过权限的配置

  #skip-grant-tables

      重启MySQL服务即可

    systemctl restart mysql

 

二、知道原来的myql数据库的root密码;

①: 在终端命令行输入 mysqladmin -u root -p password "新密码" 回车 ,Enter password: 【输入原来的旧密码】--方法1
②: 登录mysql系统修改, mysql -uroot -p 回车 Enter password: 【输入原来的密码】--方法2

mysql>use mysql;

mysql> update user set password=password("新密码") where user='root';        【密码注意大小写】

mysql> flush privileges;

mysql> exit;      

三、不知道原来的myql的root的密码;
首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。 类似于安全模式登录系统。

需要先停止mysql服务,这里分两种情况,一种可以用service mysqld stop,

另外一种是/etc/init.d/mysqld stop

当提示mysql已停止后进行下一步操作   Shutting down MySQL. SUCCESS!

在终端命令行输入

mysqld_safe --skip-grant-tables &         【登录mysql系统】

输入mysql登录mysql系统

mysql> use mysql;

mysql> UPDATE user SET password=password("新密码") WHERE user='root';      【密码注意大小写】

mysql> flush privileges;

mysql> exit;

重新启动mysql服务
————————————————

原文链接:https://blog.csdn.net/qq_42822007/article/details/90550614

posted @   艾薇-Ivy  阅读(669)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示