#01 MySQLデータベースを使ってみよう

MySQLをインストールして接続しよう

MySQLとは

MySQL? オープンソースのリレーショナルデータベース管理システム(RDBMS)。世界で最も広く使われるDBの一つで、Webアプリケーションのバックエンドに多用される。 は世界で最も広く使われているオープンソースの RDBMS? リレーショナルデータベース管理システムの略。データを表(テーブル)の形で管理し、SQL で操作する。MySQL・PostgreSQL・SQLite などが代表例。 (リレーショナルデータベース管理システム)のひとつです。Webアプリケーションのバックエンドでデータを永続化するために活用され、WordPress・Laravel・Railsなど多くのフレームワークと組み合わせて使われています。

RDBMS? リレーショナルデータベース管理システムの略。データを表(テーブル)の形で管理し、SQL で操作する。MySQL・PostgreSQL・SQLite などが代表例。 では、データをテーブル(表) という形式で管理します。スプレッドシートのように行と列でデータを整理し、テーブル同士を関連付けることで複雑な情報を効率よく扱えます。

MySQLの全体構造 クライアント Webアプリ (PHP / Python / Node) mysql CLI コマンドライン GUI ツール Workbench など SQL送信 結果返却 MySQL Server 接続管理 / 認証 クエリ解析・最適化 ストレージエンジン (InnoDB / MyISAM) ポート: 3306 データベース myapp_db users / orders ... shop_db products / reviews ... mysql (システム) クライアントはTCP/IP(または Unixソケット)でMySQLサーバーに接続する
図1: クライアントがMySQLサーバーに接続し、データベースを操作する全体像

インストール方法

macOS(Homebrew)

# Homebrewでインストール
brew install mysql

# サービスを起動
brew services start mysql

# 初期セキュリティ設定
mysql_secure_installation

Ubuntu / Debian

sudo apt update
sudo apt install mysql-server

# サービスを起動
sudo systemctl start mysql
sudo systemctl enable mysql

# 初期セキュリティ設定
sudo mysql_secure_installation

Windows / 公式インストーラ

MySQL公式サイトからMySQLインストーラをダウンロードし、画面の指示に従ってインストールします。インストール時にrootパスワードを設定するので、忘れないようにメモしておきましょう。


MySQLに接続する

インストールが完了したら、mysql コマンドでサーバーに接続します。

# rootユーザーで接続(パスワード入力プロンプトが表示される)
mysql -u root -p

# ホストを指定して接続(デフォルトはlocalhost)
mysql -h localhost -u root -p

# データベースを指定して接続
mysql -u root -p myapp_db

接続に成功すると、以下のようなプロンプトが表示されます。

Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql>
mysql コマンドによる接続フロー ① コマンド実行 mysql -u root -p ターミナルで入力 ② パスワード入力 Enter password: **** 非表示で入力 ③ 認証・接続成功 mysql> プロンプト コマンド入力待ち 接続後の基本コマンド SHOW DATABASES; データベース一覧を表示 USE データベース名; DBを選択・切り替え SHOW TABLES; テーブル一覧を表示 EXIT; / QUIT; 接続を終了する SELECT VERSION(); バージョン確認 すべてのSQL文は セミコロン(;)で終わる
図2: mysqlコマンドによる接続フローと認証プロセス

基本コマンド

MySQLに接続したら、まず以下のコマンドを覚えましょう。すべてのSQL文は セミコロン(;) で終わります。

データベース一覧を表示する

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

データベースを選択する

USE myapp_db;

テーブル一覧を表示する

SHOW TABLES;

MySQLのバージョンを確認する

SELECT VERSION();

接続を終了する

EXIT;
-- または
QUIT;

ルートユーザーと一般ユーザー

MySQLにはrootユーザー(管理者)と一般ユーザーの概念があります。

ユーザー種別権限使いどころ
rootすべての操作が可能管理作業・初期設定
一般ユーザー特定のDBのみ操作アプリケーションからの接続

本番環境では、アプリケーションにrootユーザーの認証情報を渡すのは危険です。必要最小限の権限を持つ専用ユーザーを作成して使いましょう(詳しくはEp.08で解説します)。

一般ユーザーを作成する(プレビュー)

-- ユーザーを作成
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'securepassword';

-- 特定のデータベースへの権限を付与
GRANT ALL PRIVILEGES ON myapp_db.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;

まとめ

  • MySQLはオープンソースのRDBMSで、データをテーブル形式で管理する
  • mysql -u ユーザー名 -p で接続できる
  • SHOW DATABASES; USE db名; SHOW TABLES; が基本コマンド
  • 本番環境では専用の一般ユーザーを使うのが基本

次回は、実際にデータベースとテーブルを作成する方法を学びます。