一、经常不使用root用户登录。导致密码忘记
1、第一步
kill 掉mysql 的进程,用命令查看mysql的活动的进程,kill -9 pid 不管用,用killall mysqld 就可以了
>ps -ef|grep mysql
看到如下信息:
mysql 28202 1 0 00:24 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql 28552 28202 2 00:24 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin- dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root 28579 27404 0 00:25 pts/18 00:00:00 grep --color=auto mysql
执行命令:
>killall mysqld 关闭mysql服务器进程
第二步、用不检查权限的命令去启动mysql服务器
mysqld_safe
--skip-grant-tables &
第三步、执行命令mysql 或者 mysql -u root 总之不用输入密码验证
>mysql
第四步、修改密码
mysql>update
mysql.
user
set
password
=
PASSWORD
(
'新密码'
)
where
user
=
'root'
;
mysql> flush
privileges
;
mysql>exit;
退出密码修改成功
mysql版本5.7用下面的sql语句修改
使用mysql连接server
更改密码: update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
*特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了
而是将加密后的用户密码存储于authentication_string字段
mysql> flush privileges;
mysql> quit;
来源:oschina
链接:https://my.oschina.net/u/1421591/blog/651114