linux mysql数据 解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES):
在linux 系统是输入命令: mysql -uroot -p
输入密码后 提示 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES):
说明输入的密码是错误的.
如果忘记密码可以按以下步骤解决:
1.打开my.cnf文件
[root@VM-4-11-centos /]# cd etc
[root@VM-4-11-centos etc]# ls -l | grep my.cnf
-rw-r--r-- 1 root root 1261 Sep 18 18:45 my.cnf
drwxr-xr-x 2 root root 4096 Dec 18 2021 my.cnf.d
[root@VM-4-11-centos etc]# vim my.cnf
文件如下
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
在socket=/var/lib/mysql/mysql.sock 下面增加 skip-grant-tables
修改后文件
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
修改配置的方法相当于把你的密码设置为了空
保存退出 :wq
重启mysql服务:
sudo systemctl stop mysqld.service #停止服务
sudo systemctl start mysqld.service #启动服务
重新登录mysql
[root@VM-4-11-centos etc]# mysql -uroot -p
这时的密码为空,直接回车就可进入
修改数据库密码
mysql> update mysql.user set authentication_string='这时是新密码' where user='root' and host='localhost';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
修改成功后,退出mySql : 输入命令 quit 或 exit
mysql> quit
使用新密码重新输入就好了.