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

Elastic Compute Service:MySQL デプロイメントに関する一般的な問題

最終更新日:Jun 23, 2026

このドキュメントでは、MySQL のインストール、構成、管理に関する一般的な問題のソリューションを提供し、安定したサーバーの維持を支援します。

MySQL ユーザーパスワードを忘れた場合

root 以外のユーザーのパスワードを忘れた場合は、root ユーザーを使用して直接変更できます。root ユーザーのパスワードを忘れた場合は、MySQL サービスを停止し、権限チェックをバイパスする特別なモードで再起動する必要があります。これにより、パスワードをリセットできます。

root 以外のユーザーのパスワードを忘れた場合

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

    # 実際のユーザー名に置き換えてください
    mysql -uroot -p -e "SELECT Host FROM mysql.user WHERE User = 'target_username';"
  2. Host 値に基づいてパスワードを変更します。ユーザーに複数の Host 値がある場合は、それぞれの値に対してコマンドを実行する必要があります。

    # 実際のユーザー名、パスワード、Host に置き換えてください
    mysql -uroot -p -e "ALTER USER 'target_username'@'target_host' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;"

root ユーザーのパスワードを忘れた場合

重要

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

  1. MySQL サービスを停止するには、次のコマンドを実行します。

    Alibaba Cloud Linux と CentOS

    sudo systemctl stop mysqld

    Ubuntu と Debian

    sudo systemctl stop mysql
  2. MySQL を一時的なモードで起動し、プロセス ID をメモします。後でプロセスを終了するためにこの ID が必要になります。

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

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

    sudo -u mysql mysqld --skip-grant-tables &
  3. 権限テーブルをリロードし、root パスワードを変更します。<password> を新しいパスワードに置き換えてください。パスワードは、現在のパスワードポリシーに準拠する必要があります:長さが 8 文字以上で、大文字、小文字、数字、特殊文字がそれぞれ 1 つ以上含まれている必要があります。

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

    エラー Your password does not satisfy the current policy requirements が表示された場合、パスワードはポリシーに準拠していません。MySQL プロセスを終了し、権限バイパスモードで再起動してから、準拠したパスワードでコマンドを再実行する必要があります。

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

    kill <process ID>
  5. MySQL サービスを起動するには、次のコマンドを実行します。

    Alibaba Cloud Linux と CentOS

    sudo systemctl start mysqld

    Ubuntu と Debian

    sudo systemctl start mysql
  6. 新しいパスワードでログインします。MySQL コマンドラインにアクセスできれば、パスワードのリセットは成功です。

    mysql -u root -p

MySQL データディレクトリの変更

  1. MySQL サービスを停止するには、次のコマンドを実行します。

    Alibaba Cloud Linux と CentOS

    sudo systemctl stop mysqld

    Ubuntu と Debian

    sudo systemctl stop mysql
  2. my.cnf 設定ファイル (通常は /etc/my.cnf にあります) で、datadir の値を新しいデータディレクトリのパスに変更します。

    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

MySQL 起動エラー:Permission denied

  1. MySQL の error.log ファイルをチェックして、特定のエラーメッセージを確認します。

    説明

    このファイルのデフォルトの場所は、通常 /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

MySQL 起動エラー:File './binlog.index' not found

  1. MySQL の error.log ファイルをチェックして、特定のエラーメッセージを確認します。

    説明

    このファイルのデフォルトの場所は、通常 /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
    -rw-r-----  1  root root        56 Mar 19 15:51   auto.cnf
    -rw-r-----  1  root root      1551 Mar 19 15:51   binlog.000001
    -rw-r-----  1  root root        16 Mar 19 15:51   binlog.index
    -rw-------  1  root root      1680 Mar 19 15:51   ca-key.pem
    -rw-r--r--  1  root root      1108 Mar 19 15:51   ca.pem
    -rw-r--r--  1  root root      1108 Mar 19 15:51   client-cert.pem
  3. 次のコマンドを実行して、mysql ユーザーおよびグループに正しい所有権を割り当てます。

    sudo chown -R mysql:mysql <data_directory>
  4. MySQL サービスを起動するには、次のコマンドを実行します。

    Alibaba Cloud Linux と CentOS

    sudo systemctl start mysqld

    Ubuntu と Debian

    sudo systemctl start mysql