【MySQL】初心者向け!Adminerでデータベースを簡単に管理しよう

はじめに

今回はデータベース管理ツールとして、自分のお気に入りであるAdminerの基本的な使い方を紹介します!

Adminerとは簡単に説明すると、DBと接続しGUIを使ってDBのテーブル定義などのセットアップの手順を効率化するツールです。他に近いツールとしてはphpMyAdmin、HeidiSQL、DBeaverなどがあります。Adminerはwebアプリでかつ、Dockerイメージも配布されているのでセットアップが非常に簡単という特徴があります。

今回はdocker-composeを用いてセットアップを行います。

環境構築

今回はこのdocker-compose.ymlで環境構築を行います。

mysqlのコンテナとAdminerのコンテナをそれぞれ立てて、bridge networkでそれぞれのコンテナを繋げています。docker composeの特徴として、サービス名(mysql、mysql_adminer)はbridge network内での各コンテナのホスト名となります。そのためAdminerからDBにログインする際に必要な情報となるため注意してください。(適当につけると分かりづらくなります)

ユーザー名(root)とパスワード(your_password)の部分はお好みで変更してください。

version: "3.8"
services:
  mysql:
    image: mysql/mysql-server:8.0
    platform: linux/arm64/v8
    restart: always
    tty: true
    environment:
      MYSQL_USER: root
      MYSQL_PASSWORD: your_password
      MYSQL_ROOT_PASSWORD: your_password
      MYSQL_DATABASE: application
    ports:
      - 3306:3306
    networks:
      db_networks:

  mysql_adminer:
    container_name: mysql_ui
    image: adminer
    restart: always
    ports:
      - 80:8080
    depends_on:
      - mysql
    networks:
      db_networks:

volumes:
  mysql_db:
      driver: local
networks:
  db_networks:

docker-compose.ymlファイルと同階層のディレクトリで以下のコマンドを実行してください

docker compose up -d

そのあと以下のようなログが流れ、環境構築は完了となります。
いや〜実に簡単ですね。docker compose大好きです。

 ✔ Network test_adminer_db_networks  Created                                                                                                                0.0s 
 ✔ Container test_adminer-mysql-1    Started                                                                                                                 0.3s 
 ✔ Container mysql_ui                Started

実際にAdminerを使ってみよう

ゴール

今回はこちらのメモアプリを想定したテーブルを作成します。
各ユーザーに対しidをキーに、複数のメモが紐づくイメージを想定したテーブルです。
API開発のチュートリアルなどでよく見かける形式ですね。

操作手順

ログイン

Adminerが起動しているポート(今回は80番ポート)にアクセスするとログイン画面が表示されます。

docker-compose.ymlファイルの設定に従って以下のようにログイン情報を入力してログインしてください

  • サーバー:mysql(MySQLコンテナのサービス名)
  • ユーザー名:root
  • パスワード:password
  • データベース:db

テーブル作成

ログインできたら、「テーブルを作成」をクリックします

するとテーブル作成画面に遷移します。ER図に従ってテーブル名、列名、型、長さの部分をそれぞれ入力します。

この際、idにAutoIncrementのラジオボタンを入力することを忘れないように注意してください。これによりDBにデータが投入された際に自動的にユニークのIDが付与されます。

作成が完了したら「保存」を押してください。

これだけの操作でテーブルが作成できるのは、SQLが苦手な自分としては非常にありがたいですね。

同様の操作でmemosテーブルを作成します。

datetime型を設定する際、ON UPDATEにすると自分で入力した時刻をDBに挿入する設定となります。この部分をCURRENT_TIMESTAMPにするとデータが挿入された時刻が自動的に登録されます。

この後の手順で、user_idに外部キーを設定します。

memosテーブルのuser_idカラムに外部キーを設定する

ER図にあるように、userテーブルのidとmemosテーブルのuser_idを外部キーで紐付けます。

まずmemosテーブルの設定画面に行き「外部キーを追加」をクリックします。

外部キーの設定画面に遷移したら、テーブルを「user」にします。

その後ソースをuser_id(memosテーブル)に設定し、ターゲットをid(userテーブル)にします。

設定ができたら保存を押してください。

外部キーが設定できると以下のような表示がでます!

これにてテーブル設定は完了です!

値をいれてみる

せっかくなので最後にテストとして値を入れてみます。

値を入れたいテーブルにアクセスし項目の作成をクリックします。

こんな感じで適当な値を用意して「保存」を押すと、、、

無事値が追加されました!!

ドメインが付与された文字列が自動的に青くなるのは、些細な点ですが良いポイントですね。

メモの方の値も追加していきます。

datetime部分はnowにすると自動で現在時刻が追加されます。

いい感じですね!

ただupdated_atはnullを許容するべきだった気もしますが、今回はテストということで悪しからず。

まとめ

今回はDBの管理ツールとしてAdminerを使ってみました。

Adminerを使うとSQLが分からなくてもDBの操作ができるため、自分のような初学者がRDBを勉強に利用するにはうってつけのツールだと思います。

他にも自分はローカルでDBを使った個人開発をする際にもめちゃめちゃ重宝していて、フォーマット化してあるdocker-composeファイルがあるくらい気に入っています!!

意外と情報が少ないツールなのでもう少し流行らないかなぁと個人的には思ってたり。

それでは良いエンジニアライフを!

関連記事

カテゴリー:

ブログ

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る