MySQLで--skip-grant-tablesをオフにする


13

Linuxを使用するのは初めてですが、Amazon ec2インスタンスでMySQLデータベースをセットアップしています。--skip-grant-tablesMySQL のオプションを使用してユーザーログインパスをリセットすることについて見つけたいくつかの指示に従いました。今、ユーザーを追加しようとしていますが、そのオプションをオフにする方法がわかりません。

これは私がやろうとしていることです:

mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON ...my db username and pass

しかし、私はこのエラーを受け取ります:

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

このオプションをオフにするにはどうすればよいですか?

回答:




2

これを行うには、以下の手順を使用します。

[root@backups1 mysql5.7]# bin/mysqld_safe --skip-grant-tables --user=mysql

パスワードなしでmysqlに接続します。

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

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

これはきっとあなたのために働くでしょう。


0

昨日、私は同様の問題に遭遇しました。サーバーは、OSとしてAmazon Linux 2を使用し、インストール手段として公式のyumリポジトリ(el7リポジトリ)を使用していました。

特に、公式yumリポジトリのMySQLを使用している場合、MySQLはsystemdサービスとしてインストールされます。このような場合、次のコマンドを実行して、MySQLプロセスがどのように起動されるかを確認できますsudo service mysql status -l。これにより、現在のmysqlサービスの現在のステータスが説明されます。これらの説明のうち、次の行を見つけることができました。

  Process: 26474 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

私の環境では、systemdプロセスによってMYSQLD_OPTS変数がvalue --skip-grant-tablesオプションで設定されていることがわかりました。systemdによって設定された環境変数を確認するために、でsudo systemctl show始まる行を実行して検索できますEnvironment=

この環境変数を変更するには、次のコマンドを実行しました。

sudo systemctl set-environment MYSQLD_OPTS=""

この操作の後、でmysqldサービスを再起動しましたsudo service mysql restartが、すべてが完全に機能していました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.