ERROR 1290 HY000: The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement

介绍


本地登录Mysql后执行下面语句报错
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;

ERROR 1290 HY000: The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement

报错分析


The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement
意思貌似MYSQL还运行在 –skip-grant-tables模式,–skip-grant-tables模式可以重置root的密码,但是用–skip-grant-tables启动后修改密码又报错,如何让他回到原来的模式

解决方法


执行命令关闭数据库只读属性

mysql> set global read_only=0; 
Query OK, 0 rows affected (0.00 sec) 
mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)
mysql> show variables like '%read_only%'; 
+------------------+-------+ 
| Variable_name  | Value | 
+------------------+-------+ 
| innodb_read_only | OFF  | 
| read_only    | OFF  | 
| tx_read_only   | OFF  | 
+------------------+-------+ 
3 rows in set (0.00 sec) 

再次修改密码


这次就不报错了

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.04 sec)

密码修改成功,退出skip-grant-tables模式


kill 掉 mysqld_safe –skip-grant-tables 的进程就可以了

leenhem@DESKTOP-7SREO20:~$ sudo  /etc/init.d/mysql start
 * Starting MySQL database server mysqld			
No directory, logging in with HOME=/			[ OK ]

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/1512.html

发表评论

登录后才能评论