最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

linux中MySQL忘记密码怎么办

业界 admin 4浏览 0评论

我们在安装使用MySQl 时,有时可能避免不了忘记密码,如果你忘记密码,可以按照如下方案进行操作:

我使用的MySQL版本:MySQL5.7.34

1、关闭mysql服务

查看MySQL进程,pkill -9 mysqld  先杀死进程

 查看一下端口是否存在,不存在则进行下面操作。

2、修改myf文件配置

找到myf配置文件

[root@mysql mysql]# vim /etc/myf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
skip-grant-tables      加上这一行(跳过授权表)

之所以有用户名有密码就是因为有授权表的存在,它的表里面记录了用户名和密码。有账户去登录MySQL数据库的时候它先去查看那张表,现在就直接跳过去,不看了,直接就登录了。

3、重启mysql服务
[root@mysql mysql]# bin/mysqld_safe --user=mysql &

  4、无密码登录mysql进行操作

[root@mysql mysql]# bin/mysql   拿客户端去连mysql会发现直接就进去了不需要输入用户名密码

5、MySQL客户端连接服务器并修改密码

[root@mysql ~]# /usr/local/mysql/bin/mysql

拿客户端去连MySQL会发现直接就进去了不需要输入用户名密码

mysql> select user,host,authentication_string from mysql.user;

user的表在mysql数据库里面,这是一个查询不是修改,查到之后去把 authentication_string认证字符串修改一下用password函数修改一下,里面就是新密码。

红框部分是认证字符串,目前是处于加密状态,

mysql> update mysql.user set authentication_string=password('Helloworld456!') where user='root';  

 给root账户修改,这个root账户是mysql里面的root账户和系统里面的root账户完全不搭边,是mysql最高级的账户,跟系统里面roo账户的级别是一样的。

现在密码已经被改掉了,想要立即生效就执行下面操作。

mysql> flush privileges;    这个是刷新一下上面的用户授权表,其实就是让它立即生效。

mysql> exit      退出 

6、使用新密码进行登录

[root@mysql mysql]# bin/mysql -u root -p'Helloworld456!'

退出之后再次重启mysql,因为之前的mysql用的skip-grant-tables  跳过授权表了,不能让它一直有这个配置,不然每次一重启就不用密码了,太危险。所以得把这个配置取消掉,然后在重启服务,再以正常的方法登录。

新版本不MySQL重启服务,新密码也会直接生效,本机测试版本为5.7.34

7、重启MySQL服务

[root@mysql mysql]# pkill -9 mysqld

 [root@mysql mysql]# bin/mysqld_safe --user=mysql &    启动MySQL服务

重启MySQL服务会发现,使用bin/mysql不需要密码直接就登录到MySQL了,这样太危险 

8、修改myf配置文件

[root@mysql mysql]# pkill -9 mysqld  停止MySQL服务

[root@mysql mysql]# vi /etc/myf      在这个配置文件中,把跳过授权表这一行删掉,不要注释,删完之后重新启动MySQL服务,重新登录MySQL服务,没有密码就进不去

9、重启并登录MySQL

[root@mysql mysql]# bin/mysqld_safe --user=mysql &  重新启动MySQL服务

[root@mysql mysql]# bin/mysql  这时无密码登录MySQL,会提示需要输入密码

10、使用新密码登录

[root@mysql mysql]# bin/mysql -u root -p'Helloworld456!'

 MySQL修改密码成功。

【注意】请不要因为没有掌声就放弃梦想。

我们在安装使用MySQl 时,有时可能避免不了忘记密码,如果你忘记密码,可以按照如下方案进行操作:

我使用的MySQL版本:MySQL5.7.34

1、关闭mysql服务

查看MySQL进程,pkill -9 mysqld  先杀死进程

 查看一下端口是否存在,不存在则进行下面操作。

2、修改myf文件配置

找到myf配置文件

[root@mysql mysql]# vim /etc/myf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
skip-grant-tables      加上这一行(跳过授权表)

之所以有用户名有密码就是因为有授权表的存在,它的表里面记录了用户名和密码。有账户去登录MySQL数据库的时候它先去查看那张表,现在就直接跳过去,不看了,直接就登录了。

3、重启mysql服务
[root@mysql mysql]# bin/mysqld_safe --user=mysql &

  4、无密码登录mysql进行操作

[root@mysql mysql]# bin/mysql   拿客户端去连mysql会发现直接就进去了不需要输入用户名密码

5、MySQL客户端连接服务器并修改密码

[root@mysql ~]# /usr/local/mysql/bin/mysql

拿客户端去连MySQL会发现直接就进去了不需要输入用户名密码

mysql> select user,host,authentication_string from mysql.user;

user的表在mysql数据库里面,这是一个查询不是修改,查到之后去把 authentication_string认证字符串修改一下用password函数修改一下,里面就是新密码。

红框部分是认证字符串,目前是处于加密状态,

mysql> update mysql.user set authentication_string=password('Helloworld456!') where user='root';  

 给root账户修改,这个root账户是mysql里面的root账户和系统里面的root账户完全不搭边,是mysql最高级的账户,跟系统里面roo账户的级别是一样的。

现在密码已经被改掉了,想要立即生效就执行下面操作。

mysql> flush privileges;    这个是刷新一下上面的用户授权表,其实就是让它立即生效。

mysql> exit      退出 

6、使用新密码进行登录

[root@mysql mysql]# bin/mysql -u root -p'Helloworld456!'

退出之后再次重启mysql,因为之前的mysql用的skip-grant-tables  跳过授权表了,不能让它一直有这个配置,不然每次一重启就不用密码了,太危险。所以得把这个配置取消掉,然后在重启服务,再以正常的方法登录。

新版本不MySQL重启服务,新密码也会直接生效,本机测试版本为5.7.34

7、重启MySQL服务

[root@mysql mysql]# pkill -9 mysqld

 [root@mysql mysql]# bin/mysqld_safe --user=mysql &    启动MySQL服务

重启MySQL服务会发现,使用bin/mysql不需要密码直接就登录到MySQL了,这样太危险 

8、修改myf配置文件

[root@mysql mysql]# pkill -9 mysqld  停止MySQL服务

[root@mysql mysql]# vi /etc/myf      在这个配置文件中,把跳过授权表这一行删掉,不要注释,删完之后重新启动MySQL服务,重新登录MySQL服务,没有密码就进不去

9、重启并登录MySQL

[root@mysql mysql]# bin/mysqld_safe --user=mysql &  重新启动MySQL服务

[root@mysql mysql]# bin/mysql  这时无密码登录MySQL,会提示需要输入密码

10、使用新密码登录

[root@mysql mysql]# bin/mysql -u root -p'Helloworld456!'

 MySQL修改密码成功。

【注意】请不要因为没有掌声就放弃梦想。

发布评论

评论列表 (0)

  1. 暂无评论