DockerでMariaDBデータベースをクエリする方法:初心者向けチュートリアル
DockerでMariaDBデータベースをクエリする方法
Dockerを使ってMariaDBコンテナを起動し、そのデータベースを様々な方法でクエリする方法を説明します。
前提知識
- Dockerの基礎知識
- MariaDBの基本的な知識
- SQLクエリの実行方法
使用するツール
- Docker
- MySQLクライアント (例: mysqlコマンドラインツール, Navicat, HeidiSQL)
手順
- MariaDBコンテナを起動
docker run -d --name my-mariadb \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
mariadb
上記のコマンドは、my-mariadb
という名前のコンテナでMariaDBを起動します。
-p 3306:3306
: コンテナ内の3306ポートをホストの3306ポートにマッピングします。これにより、ホストからコンテナ内のMariaDBに接続することができます。-e MYSQL_ROOT_PASSWORD=password
: MariaDBのrootユーザーのパスワードを設定します。
- MySQLクライアントを使って接続
MariaDBコンテナが起動したら、MySQLクライアントを使って接続することができます。
例:mysqlコマンドラインツールを使う場合
mysql -u root -p -h localhost
上記のコマンドは、rootユーザーでlocalhostにあるMariaDBに接続します。パスワードを求められるので、起動時に設定したパスワードを入力してください。
- データベースを操作
接続したら、通常の方法でデータベースを操作することができます。
CREATE DATABASE mydatabase;
例:テーブルを作成
CREATE TABLE mytable (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE
);
例:データ挿入
INSERT INTO mytable (name, email) VALUES ('John Doe', '[email protected]');
SELECT * FROM mytable;
- Docker Composeを使う:
docker-compose.yml
ファイルを使って、MariaDBコンテナとその他のコンテナを一緒に起動することができます。 - Webブラウザを使う: phpMyAdminなどのWebブラウザベースのツールを使って、MariaDBを操作することができます。
注意点
- コンテナは永続的なストレージではないため、重要なデータはコンテナ外に保存する必要があります。
- 複数のユーザーでデータベースにアクセスする場合は、適切な権限設定を行う必要があります。
Dockerを使ってMariaDBデータベースをクエリすることは、簡単で便利な方法です。上記の手順を参考に、ぜひ試してみてください。
データベースの作成
CREATE DATABASE mydatabase;
このコードは、mydb
という名前の新しいデータベースを作成します。
テーブルの作成
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE
);
このコードは、users
という名前のテーブルを作成します。このテーブルには、id
、name
、email
という3つの列があります。
id
列は、プライマリキーであり、自動的にインクリメントされます。name
列は、NULL値を許さず、最大255文字の長さを持つ文字列です。
データの挿入
INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]');
INSERT INTO users (name, email) VALUES ('Jane Doe', '[email protected]');
このコードは、users
テーブルに2つのレコードを挿入します。
- 1つ目のレコードは、
John Doe
という名前と[email protected]
というメールアドレスを持つユーザーを表します。
データの取得
SELECT * FROM users;
特定の条件でデータを取得
SELECT * FROM users WHERE email = '[email protected]';
このコードは、email
列が[email protected]
であるusers
テーブルのレコードを取得します。
注意事項
- 上記のコード例は、MySQL 8.0以降で使用することを想定しています。古いバージョンのMySQLを使用している場合は、コードを適宜変更する必要があります。
- 上記のコード例は、説明のみを目的としています。本番環境で使用する場合には、適切なセキュリティ対策を講じてください。
DockerでMariaDBデータベースをクエリするその他の方法
docker-compose.yml
ファイルを使って、MariaDBコンテナとその他のコンテナを一緒に起動することができます。これは、複数のコンテナで構成されるアプリケーションを開発・運用する場合に便利です。
例:docker-compose.ymlファイル
version: "3.8"
services:
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: mydatabase
ports:
- "3306:3306"
app:
image: my-app
depends_on:
- db
この例では、db
という名前のMariaDBコンテナと、app
という名前のアプリケーションコンテナを起動します。
db
コンテナは、mariadb
イメージを使って起動されます。MYSQL_DATABASE
環境変数を使って、作成するデータベースの名前を設定します。3306:3306
ポートマッピングを使って、コンテナ内の3306ポートをホストの3306ポートにマッピングします。depends_on
オプションを使って、app
コンテナがdb
コンテナが起動してから起動するように設定します。
Webブラウザを使う
phpMyAdminなどのWebブラウザベースのツールを使って、MariaDBを操作することができます。これは、GUIを使ってデータベースを操作したい場合に便利です。
例:phpMyAdminを使う
- phpMyAdminのコンテナを起動します。
docker run -d --name phpmyadmin \
-p 8080:80 \
-e PMA_USER=root \
-e PMA_PASSWORD=password \
mariadb/phpmyadmin
- Webブラウザを開き、http://localhost:8080/ にアクセスします。
- phpMyAdminのログイン画面が表示されますので、MariaDBのrootユーザーのパスワードを入力してログインします。
APIを使う
MariaDBは、REST APIを提供しています。このAPIを使って、プログラムからデータベースを操作することができます。これは、Webアプリケーションやモバイルアプリケーションからデータベースにアクセスする場合に便利です。
例:HTTPieを使ってデータを取得
httpie GET http://localhost:3306/mydb/users
- 上記の方法は、あくまでも例です。具体的な使用方法については、各ツールのドキュメントを参照してください。
docker mariadb