MySQL Workbenchを使ったMariaDBの操作
DockerでMariaDBにアクセスする方法
必要なもの
- Dockerがインストールされていること
- ターミナル操作ができること
手順
- MariaDBコンテナを起動する
docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mariadb:latest
--name
オプションでコンテナ名mariadb
を指定しています。-p
オプションでコンテナ内のポート3306
をホストマシンのポート3306
にマッピングしています。-e
オプションで環境変数MYSQL_ROOT_PASSWORD
をpassword
に設定しています。
- コンテナに接続する
docker exec -it mariadb bash
- MariaDBにログインする
mysql -u root -p password
-u
オプションでユーザー名root
を指定しています。
- MariaDB操作
ログイン後は、通常のMySQLコマンドを使用してMariaDBを操作できます。
- データベースの作成
- テーブルの作成
- データの挿入
- Docker Composeを使う
複数のコンテナをまとめて管理したい場合は、Docker Composeを使うのが便利です。
- Webブラウザからアクセスする
phpMyAdminなどのツールを使えば、WebブラウザからMariaDBにアクセスできます。
補足
- 上記の手順は基本的なものです。詳細については、各ツールのドキュメントを参照してください。
- MariaDBのバージョンによって、コマンドやオプションが異なる場合があります。
注意
- パスワードは強固なものを使用してください。
- データベースは定期的にバックアップを取るようにしてください。
- DockerやMariaDBに関する書籍やチュートリアルもたくさんありますので、参考にしてみてください。
関連用語
- Docker
- コンテナ
- ポートマッピング
- SQL
- phpMyAdmin
**この解説が、DockerでMariaDBにアクセスする
FROM mariadb:latest
ENV MYSQL_ROOT_PASSWORD password
RUN echo "CREATE DATABASE my_database;" | mysql -u root -p"$MYSQL_ROOT_PASSWORD"
version: '3'
services:
mariadb:
image: ./mariadb
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
index.php
<?php
$host = "localhost";
$port = "3306";
$database = "my_database";
$username = "root";
$password = "password";
$connection = mysqli_connect($host, $port, $username, $password, $database);
if (!$connection) {
echo "データベースに接続できません";
exit;
}
$sql = "SELECT * FROM users";
$result = mysqli_query($connection, $sql);
if (!$result) {
echo "クエリの実行に失敗しました";
exit;
}
while ($row = mysqli_fetch_assoc($result)) {
echo $row["id"] . " " . $row["name"] . "<br>";
}
mysqli_close($connection);
?>
上記コードの説明
Dockerfile
- MariaDBの最新イメージをベースにしています。
- 起動時に
my_database
というデータベースを作成しています。
- データボリューム
./data
をコンテナ内の/var/lib/mysql
にマウントしています。
- MySQLに接続して
my_database
データベースのusers
テーブルからデータを取得しています。 - 取得したデータを表示しています。
実行方法
Dockerfile
とdocker-compose.yml
を同じディレクトリに保存します。- 以下のコマンドを実行します。
docker-compose up -d
ポイント
- 上記コードはサンプルです。必要に応じて変更してください。
- データベース接続情報は環境に合わせて変更してください。
DockerでMariaDBにアクセスするその他の方法
- phpMyAdminをインストールします。
MySQLクライアントツールを使う
MySQL WorkbenchなどのMySQLクライアントツールを使えば、コマンドラインからMariaDBにアクセスできます。
- MySQLクライアントツールをインストールします。
USE my_database;
コマンドを実行して、データベースmy_database
を選択します。SELECT * FROM users;
コマンドを実行して、users
テーブルのデータを取得します。
Dockerネットワークを使えば、複数のコンテナ間で通信できます。
- MariaDBコンテナとアプリケーションコンテナを同じネットワークに接続します。
- アプリケーションコンテナからMariaDBコンテナのIPアドレスを使って接続します。
環境変数を使って、MariaDBの接続情報をアプリケーションに設定できます。
- MariaDBの接続情報を環境変数に設定します。
- アプリケーションで環境変数を使ってMariaDBに接続します。
DockerでMariaDBにアクセスする方法はいくつかあります。自分に合った方法を選びましょう。
- MySQL Workbench
- Dockerネットワーク
- 環境変数
mysql docker mariadb