前提,
能登录到mysql的这台Linux服务器 ;
已经忘记了mysql root密码,无法登录的情况下,
限于有权限修改mysql安装文件(此方法适用于**linux **)
以Linux为例:
1.编辑/etc/my.cnf配置文件,vim /etc/my.cnf
2.在[mysqld]下添加一行 skip-grant-tables,然后保存并退出
[mysqld]
Remove leading # and set to the amount of RAM for the most important data
cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
Remove leading # to turn on a very important data integrity option: logging
changes to the binary log between backups.
log_bin
Remove leading # to set options mainly useful for reporting servers.
The server defaults are faster for transactions and fast SELECTs.
Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
ADD free password by idoxu (isTester.com)
skip-grant-tables # IDO老徐注:新增这行
~
~
3.重启mysql服务:service mysqld restart
[root@isTester ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
[root@isTester ~]**# **
4.更改root密码
重启以后,执行mysql命令进入mysql命令行(上面已经设置了跳过密码,不用输入密码)
[root@isTester ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
5.修改root用户密码
参考文章 -> http://istester.com/mysql/512.html
6.把/etc/my.cnf中的skip-grant-tables注释掉
参考第2步
ADD free password by idoxu (isTester.com)
skip-grant-tables # IDO老徐注:前面新增一个 “#” 注释掉这行
~
7.重启mysql
参考第3步
搞定,
可以用root新的密码登录了