MySQLサーバーで発生する「MySQLサーバーが–skip-grant-tablesオプションで実行されています」というエラーを解決する方法

MySQLサーバーが–skip-grant-tablesオプションで起動されている場合、ユーザー認証がスキップされ、データベースに誰でもアクセスできる可能性があります。その場合は、以下の手順で問題に対処してください。

  1. MySQLサーバーの停止:プラットフォームやインストール方法に応じて適切なコマンドでMySQLサーバーを停止します。例:Ubuntuでは次のコマンドが使用できます。
sudo service mysql stop
  1. 安全モードでMySQLサーバを起動する:MySQLサーバを起動し、–skip-grant-tablesオプションを使用しますが、–skip-networkingオプションを追加して、ローカル接続のみがアクセスできるようにします。たとえば、Ubuntuでは次のコマンドを使用できます。
sudo mysqld_safe --skip-grant-tables --skip-networking &
  1. MySQL サーバーへの接続: 新しいターミナルウィンドウを開き、次のコマンドを使用して MySQL サーバーへ接続します。
mysql -u root
  1. ユーザー権限の更新:MySQL サーバーに接続したら以下のコマンドを実行してユーザー権限を更新してください。
UPDATE mysql.user SET authentication_string=PASSWORD('your_password') WHERE User='root';

‘your_password’をあなたが設定したい新しいパスワードに置き換えてください。

  1. ユーザー権限の更新:以下のコマンドを実行してユーザー権限を更新します:
FLUSH PRIVILEGES;
  1. MySQLサーバを終了するには、以下のコマンドを実行します。
quit
  1. MySQLサーバーを再起動する:適切なコマンドを使用してMySQLサーバーを再起動します。Ubuntuの場合、次のコマンドを使用します。
sudo service mysql start

なお、サーバーは通常モードで動作し、新しいパスワードが有効になります。–skip-grant-tablesオプションは、問題が解決したらすぐに削除または無効にして、データの安全を守るようにしてください。

bannerAds