Docker Compose を使用して MySQL をインストールし、発生した問題を解決する

導入

この記事では、Docker Compose を使用して MySQL をインストールし、発生した問題を解決する方法を詳しく紹介します。

関連記事の参照:
Linux オペレーティング システムでの Docker および Docker Compose のインストール チュートリアル (x86 および arm64 プラットフォームのオフライン ワンクリック インストール リソース パッケージを含む)

バージョンは以下の通りです

名前 バージョン
MySQL 8.1.0
CentOS 7.6+
ドッカー 20.10.22
Docker Compose 1.23.1

1. インストール手順

全体的なファイル構造:

[root@localhost mysql] tree -L 1
.
├── data
├── docker-compose.yml
└── log

1.1 データの永続性

# 创建持久化文件夹
[root@localhost mysql] mkdir -p log
[root@localhost mysql] mkdir -p data
[root@localhost mysql] chmod +777 log
[root@localhost mysql] chmod +777 data

1.2 docker compose ファイルの作成

#创建docker compose文件
[root@localhost mysql] vim docker-compose.yml

具体的な内容は以下の通りです。

version: "3.7"

networks:
  mysql:   #对应“mysql网桥”
    external: true

services:
  mysql:
    image: mysql:8
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: "root" # root密码
      # MYSQL_USER: test  # 新用户账号
      # MYSQL_PASSWORD: root # 新用户 密码
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql
      - ./log:/var/log/mysql
    networks:
      - mysql #网桥 这里的网桥名称“mysql”

1.3 インストールと使用方法

# 执行安装
[root@localhost mysql] docker network create mysql
a4465fd58291621302219908b7407a8a4586621b6817162cc359e1286fec8a6a
[root@localhost mysql] docker-compose up -d
Creating mysql ... done
[root@localhost mysql]

Navicat ホスト IP:3306
root アカウントのパスワードも root です

ここに画像の説明を挿入します

2. 問題解決

2.1 ブリッジ作成時のエラー

docker-compose up -d を直接実行し、エラーを報告します。
エラー: ネットワーク mysql が外部として宣言されましたが、見つかりませんでした。

[root@localhost mysql] docker-compose up -d
ERROR: Network mysql declared as external, but could not be found. Please create the network manually using `docker network create mysql` and try agai

解決策:
エラープロンプトに従って、最初にコマンドを実行します。ドッカーネットワークがmysqlを作成する
docker-compose up -d を再度実行します

2.2 MySQL バージョンのアップグレード時のエラー

MySQL イメージのバージョンを最新 (mysql:latest) にアップグレードし、docker-compose up -d を再実行すると、次のエラー メッセージが表示されます。
[エラー] [MY-010457] [サーバー] --initialize が指定されましたが、データ ディレクトリにファイルがあります。中止中。

023-08-03T02:17:11.613448Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2023-08-03T02:17:11.613472Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2023-08-03T02:17:11.613582Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-08-03T02:17:11.613960Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.1.0)  MySQL Community Server - GPL

解決策:
1. MySQL コンテナを削除します。

[root@localhost mysql] docker stop mysql
[root@localhost mysql] docker rm mysql

2. マップされた永続ディレクトリ データ (./data:/var/lib/mysql) を削除します。

[root@localhost mysql] rm -rf data

3. 永続化フォルダーとコンテナーを再作成します。

[root@localhost mysql] mkdir -p data
[root@localhost mysql] chmod +777 data
[root@localhost mysql] docker-compose up -d
Creating mysql ... done
[root@localhost mysql] docker logs -f mysql # 查看日志是否安装成功

関連記事の参照:
Linux オペレーティング システムでの Docker および Docker Compose のインストール チュートリアル (x86 および arm64 プラットフォームのオフライン ワンクリック インストール リソース パッケージを含む)

おすすめ

転載: blog.csdn.net/ChennyWJS/article/details/132078631