ホームページ > 運用・保守 > Docker > docker が mysql の起動に失敗する問題を解決する方法

docker が mysql の起動に失敗する問題を解決する方法

PHPz
リリース: 2023-03-31 18:20:53
オリジナル
6612 人が閲覧しました

docker を使用して mysql をデプロイすると、起動エラーが発生する可能性があります。この記事では、この状況を解決する方法を詳しく説明します。

1. 問題の説明

Mysql は非常に人気のあるリレーショナル データベースであり、Docker はコンテナー テクノロジです。 Docker を使用すると、Mysql データベースを簡単にデプロイできますが、Mysql コンテナの起動に失敗することがあります。次の Docker コマンドを使用して Mysql コンテナを起動すると、起動に失敗することがわかりました:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:5.7
ログイン後にコピー

2. 問題分析

上記のコマンドに従ってコンテナを起動するとき、-e パラメータは次のように指定します。環境変数。MYSQL_ROOT_PASSWORD は Mysql root ユーザーのパスワードです。 mysql: 5.7 は Mysql データベースのミラー バージョンです。ただし、コンテナの起動に失敗する場合があります。このとき、起動コンテナのログを確認することでエラーの原因を分析できます。

docker logs mysql
ログイン後にコピー
ログイン後にコピー

Mysql コンテナが起動時にクラッシュしたことが判明しました。したがって、エラーの原因を見つける必要があります。

3. 問題解決

この問題は次の手順で解決できます:

1. コンテナーが実行されているかどうかを確認します

docker ps
ログイン後にコピー

If コンテナーはすでに実行されているため、コンテナーのログを確認するだけで済みます。

2. コンテナー ログの表示

docker logs mysql
ログイン後にコピー
ログイン後にコピー

次のエラー メッセージがログにあります:

[ERROR] [MY-012144] [InnoDB] ./ibdata1 can't be opened in read-write mode
[ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error. 
[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine: 0
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
[ERROR] [MY-010119] [Server] Aborting
ログイン後にコピー

エラー ログを分析すると、次の理由がわかります。 Mysql の起動に失敗すると、データ ディレクトリが書き込み不能になります。これを修正するには、データ ディレクトリの場所を見つけて、そのアクセス許可を書き込み可能に設定する必要があります。

3. Mysql コンテナのデータ ディレクトリを表示する

docker inspect mysql | grep -i datadir
ログイン後にコピー

出力結果では、以下に示すように、Mysql コンテナのデータ ディレクトリを見つけることができます。これを変更する必要があります。権限は書き込み可能に設定されています。次のコマンドを使用してディレクトリの権限を表示および変更してください:

"DataDir": "/var/lib/mysql"
ログイン後にコピー

その後、コンテナを再起動できます:

docker exec -it mysql bash
chmod -R 777 /var/lib/mysql
exit
ログイン後にコピー

上記の手順の後、Mysql コンテナを再度起動すると、正常に起動できます。

4. 概要

この記事では、Docker が Mysql を起動できない場合の解決策を提供します。 Mysql コンテナの起動に失敗した場合は、コンテナのログを確認することでエラーの原因を特定し、時間内に解決できます。

以上がdocker が mysql の起動に失敗する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート