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

浙公网安备 33010602011771号