很久没登录服务器了,居然把MySQL密码忘了,按照网上查找到的方法,找到的my.cnf文件后发现没有[mysqld]字段;在/etc/mysql/mysql.conf.d/mysqld.cnf找到该字段后,又发现数据库没有password列,这对刚玩Linux的小白来说真是太折磨人了。不过,经查看几个方法,最终还是修改成功了。现将步骤记录一下,以备后用。
1、本人服务器的[mysqld]字段位于/etc/mysql/mysql.conf.d/mysqld.cnf里面,用sudo vim打开该文件,可获得修改权限,在[mysqld]字段中最后添加一句:skip-grant-tables;该字段将数据库置于无需密码登录状态。
2、进入到/etc/init.d/中,将数据库停止,#sudo mysql stop。
3、直接#mysql 登录数据库;从mysql 5.7开始,password 列改成 authentication_string 了,所以修改密码改为#update mysql.user set authentication_string = password('new_password') where user = 'root'; 然后 #flush privileges , 会看到query ok 等信息,退出mysql。
4、以相同方法删掉刚才添加的 skip-grant-tables 行,#sudo /etc/init.d/mysql restart。至此,mysql 密码已修改完毕。