11

--skip-grant-tables オプションを使用して MySQL にログインしました。しかし、すべての特権を root ユーザーに戻す方法がわかりません。

私は試した:

GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';

MySQL は次のように述べています。

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

しようとしている:

GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost'
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

MySQL は次のように述べています。

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

6 に答える 6

6

最初に MySQL サーバーを停止してから、--skip-grant-tablesオプションで起動します。

[root@backups1 mysql5.7]# /etc/init.d/mysqld stop
[root@backups1 mysql5.7]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql

次に、パスワードなしでインスタンスに接続します。

[root@backups1 mysql5.7]# mysql -u root

次に、root ユーザーのパスワードをリセットします。

mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;

MySQL の通常モードに切り替えてから、パスワードなしで接続します。

于 2016-11-01T10:10:31.450 に答える
5

mysqlを使用してmysqlを実行する--skip-grant-tablesと、権限はチェックされません。つまり、基本的には何でもできます。

ルート権限を取り戻すには、次のmysqlようにDBでクエリを実行する必要があります。

select * from user where user = 'root'

ルートユーザーがまだそこにいるかどうかを確認するだけです。

UPDATE user SET Grant_priv = 1, Super_priv = 1 WHERE user = 'root'

なしでmysqlを再起動でき--skip-grant-tables、rootユーザーが何らかの許可を行うことができるようになったら、クエリが機能するはずです。

于 2009-11-11T03:40:10.017 に答える
-10

GRANTクエリを実行するには、 mysql を実行しないskip-grant-tablesだけです-- 何が複雑なのですか?

于 2009-11-11T03:27:42.923 に答える