このトピックでは、MySQL データベースのデプロイメント中に発生する一般的な問題とその対応策についてまとめています。ユーザーが MySQL データベースをスムーズにインストール、構成、管理し、安定したサーバー運用を確保するのに役立ちます。
MySQL ユーザーパスワードを忘れた場合はどうすればよいですか?
一般ユーザーのパスワードを忘れた場合は、ルートユーザーとして MySQL インスタンスにログインして、ユーザーパスワードを直接変更します。ルートユーザーのパスワードを忘れた場合は、MySQL サービスを停止し、権限検証をスキップして MySQL を起動してから、パスワードをリセットします。
一般ユーザーのパスワード
対象ユーザーの
Host値をクエリします。# 実際のユーザー名で値を置き換えます。 mysql -uroot -p -e "SELECT Host FROM mysql.user WHERE User = 'target_username';"Host値に基づいてパスワードを変更します。複数のホストがある場合は、各ホストを個別に指定します。# 実際のユーザー名、パスワード、および Host 値で値を置き換えます。 mysql -uroot -p -e "ALTER USER 'target_username'@'target_Host' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;"
ルートユーザーパスワード
ルートユーザーパスワードをリセットするには、MySQL サービスを停止する必要があります。
MySQL サービスを停止します。
Alibaba Cloud Linux または CentOS
sudo systemctl stop mysqldUbuntu または Debian
sudo systemctl stop mysql一時モードで MySQL を起動します。後で終了するためにプロセス ID(PID)を記録します。
説明--skip-grant-tables: パスワードなしでログインできるように、権限検証をスキップします。&: バックグラウンドで MySQL プロセスを実行します。ターミナルは PID を返します。たとえば、[1] 1234が返された場合、1234は PID を示します。
sudo -u mysql mysqld --skip-grant-tables &サーバー上の認証テーブルをリロードし、ルートパスワードを変更します。
<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 を起動し、パスワード変更コマンドを実行する必要があります。MySQL プロセスを終了します。
kill <process_ID>オペレーティングシステムに基づいて MySQL サービスを起動します。
Alibaba Cloud Linux または CentOS
sudo systemctl start mysqldUbuntu または Debian
sudo systemctl start mysql新しいパスワードを入力します。MySQL CLI に入力できれば、パスワードは想定どおりに変更されています。
mysql -u root -p
MySQL データディレクトリを変更するにはどうすればよいですか?
MySQL データディレクトリを変更するには、次の手順を実行します。
MySQL を停止します。コマンドはオペレーティングシステムによって異なります。
Alibaba Cloud Linux または CentOS
sudo systemctl stop mysqldUbuntu または Debian
sudo systemctl stop mysqlmy.cnf構成ファイルを開き、ファイル内のdatadirパラメーターを新しい MySQL データディレクトリのパスに変更します。ファイルは通常/etc/my.cnfディレクトリに保存されています。datadir=/new/data/directory元のデータディレクトリにあるすべてのファイルとフォルダを新しいディレクトリにコピーします。
sudo cp -aR /old/data/directory/* /new/data/directory/MySQL を起動します。コマンドはオペレーティングシステムによって異なります。
Alibaba Cloud Linux および CentOS
sudo systemctl start mysqldUbuntu および Debian
sudo systemctl start mysql
「Permission denied」エラーのために MySQL を起動できない場合はどうすればよいですか?
この問題を解決するには、次の手順を実行します。
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次のコマンドを実行して、残留
mysqldプロセスが存在するかどうかを確認し、残留プロセスを終了します。sudo ps aux | grep mysqld sudo kill -9 <Process ID>MySQL を起動します。コマンドはオペレーティングシステムによって異なります。
Alibaba Cloud Linux または CentOS
sudo systemctl start mysqldUbuntu または Debian
sudo systemctl start mysql
「File './binlog.index' not found」エラーが原因で MySQL を起動できない場合はどうすればよいですか?
この問題を解決するには、次の手順を実行します。
MySQL のエラーログファイルを確認して、エラーメッセージを見つけます。
説明デフォルトでは、ファイルは通常
/var/log/mysqld.logまたは/var/log/mysql/error.logディレクトリに保存されています。mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)MySQL データディレクトリでユーザー権限エラーを確認します。
説明デフォルトでは、データディレクトリは通常
/var/lib/mysqlです。変更した場合は、関連する権限を変更する必要があります。sudo ls -l /var/lib/mysql
権限を付与します。
sudo chown -R mysql:mysql <Data directory>MySQL を起動します。コマンドはオペレーティングシステムによって異なります。
Alibaba Cloud Linux または CentOS
sudo systemctl start mysqldUbuntu または Debian
sudo systemctl start mysql