MySQL Workbenchを使ったMariaDBの操作

2024-04-02

DockerでMariaDBにアクセスする方法

必要なもの

  • Dockerがインストールされていること
  • ターミナル操作ができること

手順

  1. MariaDBコンテナを起動する
docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mariadb:latest
  • --name オプションでコンテナ名 mariadb を指定しています。
  • -p オプションでコンテナ内のポート 3306 をホストマシンのポート 3306 にマッピングしています。
  • -e オプションで環境変数 MYSQL_ROOT_PASSWORDpassword に設定しています。
  1. コンテナに接続する
docker exec -it mariadb bash
  1. MariaDBにログインする
mysql -u root -p password
  • -u オプションでユーザー名 root を指定しています。
  1. 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 テーブルからデータを取得しています。
  • 取得したデータを表示しています。

実行方法

  1. Dockerfiledocker-compose.yml を同じディレクトリに保存します。
  2. 以下のコマンドを実行します。
docker-compose up -d

ポイント

  • 上記コードはサンプルです。必要に応じて変更してください。
  • データベース接続情報は環境に合わせて変更してください。



DockerでMariaDBにアクセスするその他の方法

  1. phpMyAdminをインストールします。

MySQLクライアントツールを使う

MySQL WorkbenchなどのMySQLクライアントツールを使えば、コマンドラインからMariaDBにアクセスできます。

  1. MySQLクライアントツールをインストールします。
  2. USE my_database; コマンドを実行して、データベース my_database を選択します。
  3. SELECT * FROM users; コマンドを実行して、users テーブルのデータを取得します。

Dockerネットワークを使えば、複数のコンテナ間で通信できます。

  1. MariaDBコンテナとアプリケーションコンテナを同じネットワークに接続します。
  2. アプリケーションコンテナからMariaDBコンテナのIPアドレスを使って接続します。

環境変数を使って、MariaDBの接続情報をアプリケーションに設定できます。

  1. MariaDBの接続情報を環境変数に設定します。
  2. アプリケーションで環境変数を使ってMariaDBに接続します。

DockerでMariaDBにアクセスする方法はいくつかあります。自分に合った方法を選びましょう。

  • MySQL Workbench
  • Dockerネットワーク
  • 環境変数

mysql docker mariadb


MySQLで複数の列を1つのUPDATEで設定する方法

VALUES句を使用するVALUES句を使用すると、更新する列と値を1対1で対応させることができます。例:この例では、usersテーブルのidが1であるレコードのname列を山田太郎に、age列を30に更新します。SET句を使用すると、式や関数を使用して列の値を更新することができます。...


NoSQLデータベースとNewSQLデータベースにおけるシャード化とパーティショニング

データベースの規模が大きくなると、パフォーマンスやスケーラビリティの問題が発生する可能性があります。これらの問題に対処するために、データベースシャード化とデータベースパーティショニングという2つの技術があります。データベースシャード化とは、データを複数の独立したデータベースサーバー(シャード)に分散させる技術です。一方、データベースパーティショニングとは、データを論理的に複数のグループ(パーティション)に分割し、同じサーバー上に保存する技術です。...


MySQL Workbench で ONLY_FULL_GROUP_BY を無効にする方法

このモードは、データの整合性を保つために導入されました。しかし、場合によっては、このモードが原因でエラーが発生することがあります。ONLY_FULL_GROUP_BY を無効にする方法はいくつかあります。SET GLOBAL sql_mode オプションを使用する...


MySQL/MariaDBで圧縮データのトラブルシューティング:UNCOMPRESS関数とBLOB型

MySQL/MariaDB の UNCOMPRESS() 関数は、COMPRESS() 関数で圧縮されたバイナリ文字列を解凍して元の文字列に戻すものです。しかし、MariaDB 10 では、UNCOMPRESS() 関数の戻り値が以前のバージョンのように文字列型ではなく、BLOB 型になる場合があります。...


MySQL、SQL、MariaDBでSELECTクエリを使用して行順序を変更する方法

このチュートリアルでは、MySQL、SQL、MariaDBで SELECT クエリを使用して行順序を変更する方法について解説します。前提条件MySQL、SQL、MariaDBの基礎知識テーブルとデータの構造に関する理解方法行順序を変更するには、以下の方法を使用できます。...


SQL SQL SQL Amazon で見る



DockerでMariaDBデータベースをクエリする方法:初心者向けチュートリアル

Dockerを使ってMariaDBコンテナを起動し、そのデータベースを様々な方法でクエリする方法を説明します。前提知識Dockerの基礎知識MariaDBの基本的な知識SQLクエリの実行方法使用するツールDockerMySQLクライアント (例: mysqlコマンドラインツール


【保存版】Dockerコンテナ内のMariaDBにデータをスムーズに投入

Dockerfileは、Dockerイメージを構築する際に使用する設定ファイルです。このファイル内に CMD や ENTRYPOINT を用いて、MariaDB起動時にデータ投入スクリプトを実行するコマンドを記述できます。メリット:シンプルで分かりやすい


VPN、SSHポートフォワーディング、リモートデスクトップ:MariaDBへのリモートアクセス方法徹底比較

Dockerで実行されているMariaDBにリモートアクセスするには、いくつかの方法があります。方法ポート公開 Dockerコンテナを作成時に、MariaDBのデフォルトポートである3306番ポートを公開します。 docker run -p 3306:3306 mariadb このコマンドを実行すると、コンテナ内の3306番ポートがホストマシンの3306番ポートに公開されます。 その後、ホストマシンから以下のコマンドを実行してMariaDBに接続できます。 mysql -h localhost -u root -p


MariaDB 接続エラー「Can't connect to mariadb outside of docker container」を解決! 5つの方法でサクッと接続

Docker コンテナー内で起動した MariaDB に、コンテナー外部から接続しようとしたら、「Can't connect to mariadb outside of docker container」というエラーが発生した経験はありませんか?