解决mysql中忘记密码或密码过期之后,如何进入mysql问题
2016-09-10 19:30
344 查看
最近在修复mysql中密码过期的问题,过程比较波折啊。所以总结一下,帮助自己以后好直接使用。
进入mysql,而忽略密码登录,其实非常简单。只需要一条简单的命令就好,该命令为:mysqld_safe --skip-grant-tables &或/usr/bin/mysqld_safe --skip-grant-tables &
另一种方法为修改配置文件,在my.cnf中[mysqld]模块下添加skip-grant-tables
例如
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
重启mysql服务,即可直接进入,无须密码.
通过使用该命令之后,我们可以直接进入mysql而不需要密码,当在需要输入密码的时候,可以直接跳过就好。
但是在使用这中情况的时候,很有可能会发生一个问题,就是受到目前系统中存在的mysql线程影响,导致提示ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111)。
这种时候需要我们将计算机中存在的mysql的进程,全部杀死。然后再次执行mysqld_safe --skip-grant-tables &命令。
杀死进程需要查看进程,查看进程的命令为:ps -ef |grep 进程名
在杀死进程的时候,很有可能因为是父级与子级的关系导致进程无法被杀死。
所以这个时候需要查看父级进程的pid,然后把它杀死。
查看父级进程的命令为: ps -A|grep -i 进程名
然后根据pid将进程杀死,命令为:kill -9 pid号
所以杀死进程之后,通过mysqld_safe --skip-grant-tables &命令启动服务之后,直接通过mysql命令登录。然后就可以修改密码了,修改密码的步奏如下:
新版本
use mysql;
update user set authentication_string=PASSWORD(‘12345678’) where user=”root”; //将root密码设置为12345678
flush privileges;
quit
老版本
use mysql;
update user set password=PASSWORD(‘12345678’) where user=”root”; //将root密码设置为12345678
flush privileges;
quit
是老版本还是新版本,自己根据mysql数据库中的user表的列情况判断,查看表具有的列命令为:show columns from user;
至此,密码修改完成,就可以停止mysqld_safe –skip-grant-tables &命令。因为我不知道该如何停止,所以我会直接把这个进程杀死。然后通过service mysql start启动mysql服务,用新的密码登录 mysql -uroot -p 新的密码
至此,一切结束。
进入mysql,而忽略密码登录,其实非常简单。只需要一条简单的命令就好,该命令为:mysqld_safe --skip-grant-tables &或/usr/bin/mysqld_safe --skip-grant-tables &
另一种方法为修改配置文件,在my.cnf中[mysqld]模块下添加skip-grant-tables
例如
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
重启mysql服务,即可直接进入,无须密码.
通过使用该命令之后,我们可以直接进入mysql而不需要密码,当在需要输入密码的时候,可以直接跳过就好。
但是在使用这中情况的时候,很有可能会发生一个问题,就是受到目前系统中存在的mysql线程影响,导致提示ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111)。
这种时候需要我们将计算机中存在的mysql的进程,全部杀死。然后再次执行mysqld_safe --skip-grant-tables &命令。
杀死进程需要查看进程,查看进程的命令为:ps -ef |grep 进程名
在杀死进程的时候,很有可能因为是父级与子级的关系导致进程无法被杀死。
所以这个时候需要查看父级进程的pid,然后把它杀死。
查看父级进程的命令为: ps -A|grep -i 进程名
然后根据pid将进程杀死,命令为:kill -9 pid号
所以杀死进程之后,通过mysqld_safe --skip-grant-tables &命令启动服务之后,直接通过mysql命令登录。然后就可以修改密码了,修改密码的步奏如下:
新版本
use mysql;
update user set authentication_string=PASSWORD(‘12345678’) where user=”root”; //将root密码设置为12345678
flush privileges;
quit
老版本
use mysql;
update user set password=PASSWORD(‘12345678’) where user=”root”; //将root密码设置为12345678
flush privileges;
quit
是老版本还是新版本,自己根据mysql数据库中的user表的列情况判断,查看表具有的列命令为:show columns from user;
至此,密码修改完成,就可以停止mysqld_safe –skip-grant-tables &命令。因为我不知道该如何停止,所以我会直接把这个进程杀死。然后通过service mysql start启动mysql服务,用新的密码登录 mysql -uroot -p 新的密码
至此,一切结束。
相关文章推荐
- MySQL,如何修改root帐户密码、如何解决root帐户忘记密码的问题
- mysql 解决mysql密码忘记问题,修改密码之后登录不成功的问题
- MySQL,如何修改root帐户密码、如何解决root帐户忘记密码的问题
- MySQL,如何修改root帐户密码、如何解决root帐户忘记密码的问题
- 如何解决Mysql中忘记root密码的情况
- linux下如何进入单人维护模式,忘记密码的解决方法
- Linux下XAMPP装完之后,Navicat无法连上数据库的问题的解决 注意'mypassword'是当前的mysql登录密码
- MySQL忘记root密码如何解决?
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- mysql 5.6忘记root密码之后如何重新设置密码
- 新安装mysql无法登录问题解决,忘记密码同解
- 在centos中安装了mysql5.7之后解决不知道随机的密码的问题
- ubuntu下彻底卸载mysql后重新安装——解决忘记mysql的root密码问题
- mysql忘记密码如何解决
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- linux下忘记mysql的root密码的解决问题
- 解决mysql密码忘记的问题
- mysql 忘记root密码 如何解决
- mysql忘记密码问题解决方案
- 在centos中安装了mysql之后解决不知道随机的密码的问题