MySQL密码的找回mysql根据版本的不同,重置密码的方式也是不一样的,我们还是根据版本来操作最好。    //查看当前mysql的版本            mysql --version停止mysql服务 根据 MySQL 的安装方式来停止 init 方式sudo /etc/init.d/mysqld stop systemd 方式sudo systemctl stop mysqld跳过权限认证启动方法一`mysqld_safe --skip-grant-tables --skip-networking &`如果是 apt 方式安装的 MySQL 请使用下面方式,这种方式好像不太好用,也没去纠结过为什么。#### 方法二修改my.cnf配置文件根据配置文件的实际位置去修改```````#  一般在这个位置`sudo vi /etc/my.cnf`# apt 方式安装的在下面位置`sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf`# 自己编辑安装的话看初始化时的配置```````在`[mysqld]`的段中加上一句:`skip-grant-tables`,如下:``````[mysqld]## * Basic Settings#skip-grant-tablesuser        = mysqlpid-file    = /var/run/mysqld/mysqld.pidsocket      = /var/run/mysqld/mysqld.sock```````### 重置密码此时 MySQL 的登录可以不需要密码了,直接不输入密码登录即可。`mysql -uroot`登录后重置密码即可。#### 5.7.6 之前版本mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;mysql> flush privileges;#### 5.7.6 及以后版本设置成空密码,稍后就可以不使用密码登陆,然后重置密码。```````UPDATE mysql.user SET authentication_string="" WHERE user="root" and host = "localhost";```````重新启动 MySQL 服务将之前配置文件中加的 skip-grant-tables 去掉,正常启动服务。此时再登录 MySQL 就可以用重置后的密码去登录了。##### 再次修改账号使用新的密码登录 MySQL 后查看下权限是否是完整的,有些版本(忘了是哪个版本,遇到过)修改完的账号功能还是不完全了,还需要再次修改,用刚刚重置完的密码登录,如果没有问题可以忽略此步。```mysql -uroot -p# 执行下面sqlmysql> alter user 'root'@'localhost' identified by 'password';```这样就能够完成整个流程了