Docker-compose インストール db2 データベース操作

Docker-compose インストール db2 データベース操作

db2 データベースをホストマシンに直接インストールするのは面倒で、ユーザーや権限を巻き込むのも不便なので、docker を使用して db2 データベースをインストールします。これの利点は、データベース管理とネットワーク分離が容易になることです。Docker は通常、インターネット上で直接実行されるため、後で変更するのは不便です。db2 データベースをインストールするには、引き続き docker-compose ファイルを使用します。

1. データベースイメージを自動的にダウンロードするためのdocker-composeファイルを作成する

このファイル用のフォルダを作成するだけです。

バージョン: "2.2"
サービス:
 db2:
 画像: ibmcom/db2
 コンテナ名: db211.5
 特権: true
 環境:
 ライセンス: 同意する
 DB2INST1_PASSWORD: パスワード DBNAME: TESTDB
 ボリューム:
 - ./db2data:/データベース
 ポート:
 - 50000:50000

2. インストールログを確認し、DB2の初期化が完了するまで待ちます。これには数分かかる場合があります。

#docker-composeを実行してインストールを開始します。docker-compose up -d
#インストールログを表示する docker-compose ログ
#TESTDBが作成されるとほぼインストールされます

3. db2データベースコンテナに入り、独自のデータベースを作成します。

#コンテナに入る docker exec -it db211.5 bash
#db2inst1 ユーザーに切り替える su db2inst1
#TESTDBデータベースがあるかどうかを確認します db2 list dbディレクトリ

4. ユーザーを作成し、権限を付与する

その他の権限はオンラインで見つかります。ここでは、簡単な接続と、権限の追加、削除、変更、確認について説明します。

#ユーザーグループを作成 groupadd db2group
#ユーザーをグループに追加 useradd -m -g db2group -d /home/test test
#テストパスワードをpasswd testに変更します
# パスワードを 2 回続けて入力します # db2inst1 ユーザーに切り替えて、テストへの接続権限を付与します su db2inst1
#データベース db2 に接続して testdb に接続
#接続権限を付与する db2 grant connect on database to user test
#追加、削除、変更、およびチェックの権限を付与します。db2 grant DATAACCESS on database to user test
#接続を閉じる db2 connect reset
#その他の一般的なコマンド#データベースを作成する db2 create db TEST using codeset utf-8 territory CN
#現在のデータベースをすべて表示 db2 list db directory
#ライブラリ内のテーブル名を表示する db2 list tables
#その他のコマンドは省略

5. DB2エクスポートおよびインポート操作コマンド

#db2 エクスポート コマンド (多くのファイルが表示されるので、すべてをパッケージ化します)
db2move <データベース> エクスポート
#db2 インポートコマンド (パッケージ化されたファイルをインポートするサーバーにコピーし、フォルダーディレクトリで次のコマンドを実行します)
db2move <データベース> インポート
#権限の問題がある場合は、インポートコマンドによってimport.outファイルが作成されるため、ルートユーザーを使用してフォルダーへの書き込み権限を付与します。

この時点で、db2 用の docker のインストールは完了です。docker コンテナを使用する利点は、サーバー間でシームレスに移行できることです。そのため、将来的にデータベースを他のサーバーに移行する場合に非常に便利です。

追加知識: docker に db2 をインストールし、ローカルにマウントする

1. すべてのdb2イメージを見つける

docker pull ibmcom/db2

2. イメージをプルする

ここでは最新バージョンのイメージを使用しています。最新バージョンが必要ない場合は、ご自身の状況に応じてバージョンを指定してください。方法: docker pull db2:11.5.4.0

docker pull ibmcom/db2

3. コンテナを起動してマウントする

docker run -d -p 50001:50000 --name db2_50001 --privileged=true -e DB2INST1_PASSWORD=123456 -e DBNAME=testdb -e LICENSE=accept -v /data/tadopDataProject/db2/50001:/database ibmcom/db2

パラメータの説明:

-d: コンテナをバックグラウンドで起動することを意味します。

-p 50001:50000: コンテナ内の 50000 ポートはホスト上の 50000 ポートにマップされます。

--name db2_50001: コンテナの名前を db2_50001 にします

--privileged=true: コンテナ内のルートに実際のルート権限を持たせることができます。

-e DB2INST1_PASSWORD=123456: 組み込みインスタンスユーザー db2inst1 のパスワードを 123456 に設定します。

-e DBNAME=testdb: コンテナの起動時に、testdb という名前のデータベースが自動的に作成されます。このパラメータを指定しないと、データベースは作成されません。

-e LICENSE=accept: 契約に同意する

-v /data/tadopDataProject/db2/50001:/database: マウントディレクトリ。/data/tadopDataProject/db2/50001 はホストマシンのディレクトリです。

4. 起動が成功したか確認する

ドッカーps

netstat -anp |grep 50001

5. コンテナに入り、db2コマンドを実行する

docker exec -it db2_50001 bash

インスタンス ユーザー db2inst1 に切り替えるには、次のコマンドを実行します。

注意:中央の横棒(-)を必ず記入してください。

su -db2inst1

実行ステータスを確認します。

db2pd -

データベースとパッチのバージョンを表示します。

db2レベル

作成されたデータベースを表示します。

db2 dbディレクトリをリストする

次のコマンドを実行して、testdb データベースに接続します。

db2 を testdb に接続します

TEST というテーブルを作成します。

注意: db2 コマンドに続く SQL ステートメントは引用符で囲む必要があります。そうしないと、エラー -bash: syntax error near expected token `(' が報告されます。

db2 "テーブル TEST を作成します (ID BIGINT NOT NULL、デフォルトで IDENTITY として生成 (1 から開始、1 ずつ増加)、USER_NAME VARCHAR(20)、USER_AGES INT)"

すべてのユーザー テーブルを表示:

db2 テーブルのリスト

次のコマンドを実行して、SAMPLE データベース (サンプル データベース) を作成することもできます。

db2サンプル

db2 list dbdirectory コマンドを再度実行して、作成が成功したかどうかを確認します。

最後に、exit を実行してコンテナを終了し、ホスト マシンに戻ります。

testdbデータベースに接続する

上記のdocker-composeインストールdb2データベース操作は、エディターがあなたと共有するすべての内容です。これが参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル
  • Docker-compose チュートリアルのインストールとクイックスタート
  • docker-composeの詳細なインストールと使用方法
  • docker-composeをインストールする最も簡単な方法2つ
  • Docker-composeのインストールと設定の詳細な手順
  • Docker Composeを使用してDOCleverをインストールする詳細なプロセスを説明します

<<:  Windows に Docker と docker-compose スイートをインストールするための詳細なチュートリアル

>>:  カルーセル効果を作成するためのjs

推薦する

MySQL max_allowed_pa​​cket 設定

max_allowed_pa​​cket は、受け入れるパケットのサイズを設定するために使用される ...

ログインボックスのドラッグ効果を実現するためのJavascript

この記事では、ログインボックスのドラッグ効果を実現するためのJavascriptの具体的なコードを参...

JavaScript で最も高速なループはどれですか?

どの for ループまたは反復子がニーズに適しているかを知ることで、アプリケーションのパフォーマンス...

フラットスタイルを使用してウェブサイトをデザインする方法

フラットなウェブサイト構造の本質はシンプルさです。コンテンツの重要なポイントを強調し、ページの装飾効...

pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

pt-ハートビートデータベースがマスターとスレーブ間で複製される場合、複製ステータスとデータ遅延は非...

jQueryは画像追従効果を実現します

この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

MySQL で 2 つのデータベース テーブル構造を比較する方法

開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...

VueとVueComponentの関係の詳細な説明

次のケースでは、これまでに学んだプロトタイプチェーンの知識ポイントを確認します。 // コンストラク...

...

nginx を介してローカルでリバースプロキシを構成するプロセス全体

序文Nginx は、イベント駆動型の非同期非ブロッキング処理フレームワークを使用する軽量 HTTP ...

Nginx プロセス スケジューリングの問題の詳細な説明

Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...

Vue2 キューブUI 時間セレクターの詳細な説明

目次序文1. 需要と効果必要効果2. コードの実装index.vue(html)日付方法テスト結果3...

CentOS 上での MySQL 5.6 のコンパイルとインストール、および複数の MySQL インスタンスのインストールの詳細な説明

--1. mysql用の新しいグループとユーザーを作成する # ユーザー追加 -M -s /sbin...

HTMLはフォームタグを使用して登録ページのサンプルコードを実装します。

ケースの説明: - ページ効果を実現するためにテーブルを使用する- ハイパーリンクを機能させたくない...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...