关闭数据库
当你准备重置root用户密码时,首先要做的是停止mysql服务
//查询mysqld进程pid
ps -ef | grep mysqld | awk '{if(NR ==1){print $2}}'
//停止进程
kill pid号
如果有启动脚本可以通过
service mysqld stop
来停止数据库
跳过权限检测
切换到mysql目录下的bin目录下 寻找mysald_safe
有些云服务器或者预装mysql版本的liunx可能并不在这个目录
可以查询一下
find / -name mysqld_safe
增加参数 跳过权限验证
./mysqld_safe --skip-grant-tables --skip-networking &
--skip-grant-tables跳过权限验证
--skip-networking 禁止原创链接(暴露在公网上请增加此参数 可选)
修改root密码
version 5.7+
user表发生变化 原来的password字段由authentication_string取代 还需要注意两个字段 特别是第一次安装完数据库没有修改的
password_expired 表示密码是否过期 N表示未过期,如果是Y需要修改此参数
account_locked 新增的字段 表表示账号是否锁定 同上 N/Y
update mysql.user set authentication_string = PASSWORD('123456') where user = 'root'\G
version 5.7-
update mysql.user set Password = PASSWORD('123456') where user = 'root'\G
修改完成后 使用
flush privileges;
刷新权限
退出免验证模式
停止mysqld_safe进程 可以通过
ps -ef | grep mysqld_safe | awk '{if(NR ==1){print $2}}'
kill -9 pid号
重启mysql
如果有启动脚本可以通过
service mysqld start
否则
/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
后面参数可以自己修改或者不指定
最后 测试帐号