Mysql Centos下忘记密码配置skip-grant-tables依然报错问题
2017-07-12 19:14
399 查看
时间:2017-07-12发布
以上报错信息基本看不出具体问题,需要去日志文件中查看 /var/log/mysqld.log,找到关键报错信息如下:
错误信息提示:无法识别 validate_password,此句话是忽略密码策略时添加的,添加后没有直接报错,只是在此基础上又加上了 skip-grant-tables后报错
解决办法:删除掉validate_password所在行
分析原因:在skip-grant-tables约束下,密码策略已经无效,所以无法识别validate_password 字段,两者不能同时存在,可以在修改完密码后,删除skip-grant-tables,根据需要加上’validate_password=off’
ps:附上修改后的脚步命令
命令:
[mysqld]
skip-grant-tables
datadir=/var/lib/MySQL
socket=/var/lib/mysql/mysql.sock
3.重启mysql
service mysql restart
4.用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
5.选择数据库
use mysql;
6.修改root密码
update user set authentication_string=password(‘root’) where user=’root’;
7.执行
flush privileges;
8.退出
exit;
9.删除
去my.cnf 中删除行 skip-grant-tables
10.重启mysql
service mysqld restart
环境:centos7
mysql版本:5.7
问题描述:不知什么原因,原来设置的mysql密码无效,无法用root用户登录系统,按照网上描述在 /etc/my.cnf文件中 添加一行“skip-grant-tables”,添加后启动报错,报错信息如下:
[root@localhost etc]# service mysqld start Redirecting to /bin/systemctl start mysqld.service Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.
[root@localhost etc]# systemctl status mysqld.service mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled) Active: failed (Result: start-limit) since 三 2017-07-12 17:30:28 CST; 14s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 5423 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE) Process: 5405 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 4903 (code=exited, status=0/SUCCESS)
以上报错信息基本看不出具体问题,需要去日志文件中查看 /var/log/mysqld.log,找到关键报错信息如下:
2017-07-12T10:46:35.634057Z 0 [ERROR] unknown variable 'validate_password=off' 2017-07-12T10:46:35.634069Z 0 [ERROR] Aborting
错误信息提示:无法识别 validate_password,此句话是忽略密码策略时添加的,添加后没有直接报错,只是在此基础上又加上了 skip-grant-tables后报错
解决办法:删除掉validate_password所在行
分析原因:在skip-grant-tables约束下,密码策略已经无效,所以无法识别validate_password 字段,两者不能同时存在,可以在修改完密码后,删除skip-grant-tables,根据需要加上’validate_password=off’
ps:附上修改后的脚步命令
命令:
[mysqld]
skip-grant-tables
datadir=/var/lib/MySQL
socket=/var/lib/mysql/mysql.sock
3.重启mysql
service mysql restart
4.用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
5.选择数据库
use mysql;
6.修改root密码
update user set authentication_string=password(‘root’) where user=’root’;
7.执行
flush privileges;
8.退出
exit;
9.删除
去my.cnf 中删除行 skip-grant-tables
10.重启mysql
service mysqld restart
相关文章推荐
- MySQL 忘记密码:skip-grant-tables
- centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课
- mysql忘记密码或需要彻底删除 skip-grant-tables
- MySQL 忘记密码:skip-grant-tables
- mysql忘记root密码而 mysqld –skip-grant-tables 报错时
- centos下忘记mysql密码的解决办法一:(停掉正在运行的mysql) [root@NetDakVPS ~]# service mysqld stop 二:使用 “–skip-grant-tabl
- skip-grant-tables 修改linux的mysql忘记root密码
- MySQL忘记root密码--skip-grant-tables
- MySQL 忘记密码:skip-grant-tables
- Linux下忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法
- MySQL 忘记密码:skip-grant-tables
- MySQL 5.6 root密码丢失,使用mysqld --skip-grant-tables
- MySQL 5.6 root密码丢失,使用mysqld --skip-grant-tables
- MySQL 5.6 root密码丢失,使用mysqld --skip-grant-tables出现错误提示
- 【Day46】CentOS中安装了MySQL 5.7后忘记密码问题解决
- MySQL 5.6 root密码丢失,使用mysqld --skip-grant-tables
- mysql 半同步(semi_sync)插件与skip-grant-tables冲突问题一例
- 忘记mysql root用户密码的解决办法(skip-grant-tables)
- skip-grant-tables:忘记mysql root用户密码的解决办法
- MySQL 5.6 root密码丢失,使用mysqld --skip-grant-tables