すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:MySQL デプロイメントに関する FAQ

最終更新日:May 14, 2025

このトピックでは、MySQL データベースのデプロイメント中に発生する一般的な問題とその対応策についてまとめています。ユーザーが MySQL データベースをスムーズにインストール、構成、管理し、安定したサーバー運用を確保するのに役立ちます。

MySQL ユーザーパスワードを忘れた場合はどうすればよいですか?

一般ユーザーのパスワードを忘れた場合は、ルートユーザーとして MySQL インスタンスにログインして、ユーザーパスワードを直接変更します。ルートユーザーのパスワードを忘れた場合は、MySQL サービスを停止し、権限検証をスキップして MySQL を起動してから、パスワードをリセットします。

一般ユーザーのパスワード

  1. 対象ユーザーの Host 値をクエリします。

    # 実際のユーザー名で値を置き換えます。
    mysql -uroot -p -e "SELECT Host FROM mysql.user WHERE User = 'target_username';"
  2. Host 値に基づいてパスワードを変更します。複数のホストがある場合は、各ホストを個別に指定します。

    # 実際のユーザー名、パスワード、および Host 値で値を置き換えます。
    mysql -uroot -p -e "ALTER USER 'target_username'@'target_Host' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;"

ルートユーザーパスワード

重要

ルートユーザーパスワードをリセットするには、MySQL サービスを停止する必要があります。

  1. MySQL サービスを停止します。

    Alibaba Cloud Linux または CentOS

    sudo systemctl stop mysqld

    Ubuntu または Debian

    sudo systemctl stop mysql
  2. 一時モードで MySQL を起動します。後で終了するためにプロセス ID(PID)を記録します。

    説明
    • --skip-grant-tables: パスワードなしでログインできるように、権限検証をスキップします。

    • &: バックグラウンドで MySQL プロセスを実行します。ターミナルは PID を返します。たとえば、[1] 1234 が返された場合、1234 は PID を示します。

    sudo -u mysql mysqld --skip-grant-tables &
  3. サーバー上の認証テーブルをリロードし、ルートパスワードを変更します。<password> を使用するパスワードに置き換えます。パスワードは次の要件を満たしている必要があります。1 つ以上の大文字、1 つ以上の小文字、1 つの数字、1 つの特殊文字を含み、長さが 8 文字以上である必要があります。

    mysql -uroot -e"FLUSH PRIVILEGES;" -e"ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';"

    Your password does not satisfy the current policy requirements というエラーメッセージが返された場合、パスワードはポリシー要件を満たしていません。MySQL プロセスを閉じて、権限検証をスキップして MySQL を起動し、パスワード変更コマンドを実行する必要があります。

  4. MySQL プロセスを終了します。

    kill <process_ID>
  5. オペレーティングシステムに基づいて MySQL サービスを起動します。

    Alibaba Cloud Linux または CentOS

    sudo systemctl start mysqld

    Ubuntu または Debian

    sudo systemctl start mysql
  6. 新しいパスワードを入力します。MySQL CLI に入力できれば、パスワードは想定どおりに変更されています。

    mysql -u root -p

MySQL データディレクトリを変更するにはどうすればよいですか?

MySQL データディレクトリを変更するには、次の手順を実行します。

  1. MySQL を停止します。コマンドはオペレーティングシステムによって異なります。

    Alibaba Cloud Linux または CentOS

    sudo systemctl stop mysqld

    Ubuntu または Debian

    sudo systemctl stop mysql
  2. my.cnf 構成ファイルを開き、ファイル内の datadir パラメーターを新しい MySQL データディレクトリのパスに変更します。ファイルは通常 /etc/my.cnf ディレクトリに保存されています。

    datadir=/new/data/directory
  3. 元のデータディレクトリにあるすべてのファイルとフォルダを新しいディレクトリにコピーします。

    sudo cp -aR /old/data/directory/* /new/data/directory/
  4. MySQL を起動します。コマンドはオペレーティングシステムによって異なります。

    Alibaba Cloud Linux および CentOS

    sudo systemctl start mysqld

    Ubuntu および Debian

    sudo systemctl start mysql

「Permission denied」エラーのために MySQL を起動できない場合はどうすればよいですか?

この問題を解決するには、次の手順を実行します。

  1. MySQL のエラーログファイルを確認して、エラーメッセージを見つけます。

    説明

    デフォルトでは、ファイルは通常 /var/log/mysqld.log または /var/log/mysql/error.log ディレクトリに保存されています。

    [ERROR] [MY-010092] [Server] Can't start server: can't create PID file: Permission denied
  2. 次のコマンドを実行して、残留 mysqld プロセスが存在するかどうかを確認し、残留プロセスを終了します。

    sudo ps aux | grep mysqld
    sudo kill -9 <Process ID>
  3. MySQL を起動します。コマンドはオペレーティングシステムによって異なります。

    Alibaba Cloud Linux または CentOS

    sudo systemctl start mysqld

    Ubuntu または Debian

    sudo systemctl start mysql

File './binlog.index' not found」エラーが原因で MySQL を起動できない場合はどうすればよいですか?

この問題を解決するには、次の手順を実行します。

  1. MySQL のエラーログファイルを確認して、エラーメッセージを見つけます。

    説明

    デフォルトでは、ファイルは通常 /var/log/mysqld.log または /var/log/mysql/error.log ディレクトリに保存されています。

    mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)
  2. MySQL データディレクトリでユーザー権限エラーを確認します。

    説明

    デフォルトでは、データディレクトリは通常 /var/lib/mysql です。変更した場合は、関連する権限を変更する必要があります。

    sudo ls -l /var/lib/mysql

    image

  3. 権限を付与します。

    sudo chown -R mysql:mysql <Data directory>
  4. MySQL を起動します。コマンドはオペレーティングシステムによって異なります。

    Alibaba Cloud Linux または CentOS

    sudo systemctl start mysqld

    Ubuntu または Debian

    sudo systemctl start mysql