mysql server is running with the --skip-grant-tables option

网络编程 2021-07-05 14:36www.168986.cn编程入门
今天在mysql中新建数据库提示The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,原来是数据中配置的--skip-grant-tables,这样安全就降低了,这个一般当忘记root密码的时候需要这样操作

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
意思貌似MYSQL还运行在 --skip-grant-tables模式,如何让他回到原来的模式

第一种方法原来在mysql.ini文件中配置了skip-grant-tables,前面加个#注释掉就可以了

修改mysql的配置文件,把skip-grant-tables去掉后,重启mysql

第二种

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决办法

mysql> set global read_only=0;
(关掉新主库的只读属性)

flush privileges;

set global read_only=1;(读写属性)

flush privileges;

Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.

mysql> SET SESSION binlog_format = 'ROW';
mysql> SET GLOBAL binlog_format = 'ROW';

解释

set global read_only=0; 关闭只读,可以读写
set global read_only=1; 开始只读模式

mysql> set global read_only=0; 
Query OK, 0 rows affected (0.00 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> set global read_only=1; 
Query OK, 0 rows affected (0.00 sec) 
 
mysql> show variables like '%read_only%'; 
+------------------+-------+ 
| Variable_name  | Value | 
+------------------+-------+ 
| innodb_read_only | OFF  | 
| read_only    | ON  | 
| tx_read_only   | OFF  | 
+------------------+-------+ 
3 rows in set (0.00 sec) 

set global read_only=0; 关闭只读,可以读写 set global read_only=1; 开始只读模式

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by