【AlmaLinux 9】MySQL初心者講座 第1回:データベースの概念と最速インストール・初期設定

こんにちは!「LINUX工房」管理人の「リナックス先生」です。
Apacheを自在に操れるようになった皆さんが、Webエンジニアとして次に手に入れるべき武器。それが「データベース(RDBMS)」です。

Webサイトで「記事を投稿する」「ユーザー情報を保存する」「注文履歴を管理する」……これらの機能はすべてデータベースが支えています。中でもMySQLは世界で最も普及しているオープンソースデータベースであり、WordPressをはじめとする無数のシステムで採用されています。

コウ君

先生、ついにデータベースですね!以前、独学で触ってみたんですが、Excelと何が違うのかよくわからなくて……。
あと、黒い画面(ターミナル)で「GRANT」とか「IDENTIFIED BY」とか呪文みたいなのを打つのが怖くて挫折しちゃいました。

リナックス先生

大丈夫よ、コウ君。Excelは「人間が見て計算するための道具」だけど、MySQLは「プログラムが高精度に読み書きするための倉庫」なの。
呪文のように見えるSQLも、実は英語の文法とほぼ同じ。今回はAIを「SQL翻訳機」として使いながら、世界一わかりやすく解説してあげるわ!

🐬 MySQL初心者講座・連載ロードマップ(全8回)

  • 【第1回】データベースの概念と最速インストール・初期設定(本記事)
  • 【第2回】テーブル設計の極意:データ型と主キーの重要性
  • 【第3回】SQL基本4操作(CRUD):SELECT/INSERT/UPDATE/DELETEをマスターする
  • 【第4回】データの抽出と並び替え:WHERE句とORDER BYを使いこなす
  • 【第5回】複数のテーブルを繋ぐ:JOIN(結合)の魔法を理解する
  • 【第6回】集計とグループ化:COUNT/SUMとGROUP BYで統計を取る
  • 【第7回】インデックスとパフォーマンス:重いクエリを劇的に速くする方法
  • 【第8回】バックアップと復旧:mysqldumpによるデータ保護と自動化

1. MySQLとは?Excelとの決定的な違い

データベースとは一言で言えば「整理整頓されたデータの集まり」です。MySQLはその中でも「リレーショナルデータベース(RDB)」という種類に属します。

1-1. なぜExcelではダメなのか?

Excelは非常に便利ですが、Webシステムの裏側として使うには以下の弱点があります。

  • 同時アクセスの弱さ: 100人が同時に書き込もうとするとファイルが壊れます。
  • データ量の限界: 数十万行を超えると動作が極端に重くなります。
  • データ整合性: 「電話番号の欄に名前が書いてある」といったミスを防ぐのが困難です。

MySQLは、数千万件のデータであっても、複数のユーザーから同時に、ミリ秒単位で正確に読み書きすることに特化しています。


2. AlmaLinux 9へのMySQLインストール手順

それでは、実際に手を動かしてMySQL(Community Server 8.0系)をインストールしていきましょう。

2-1. リポジトリの追加とインストール

AlmaLinux 9の標準リポジトリにはMySQLではなくMariaDBが含まれていることが多いため、公式のMySQLリポジトリを追加します。

# MySQLリポジトリのインストール
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

# MySQL Serverのインストール
sudo dnf install -y mysql-community-server

2-2. サービスの起動と自動起動設定

インストールが終わったら、サービスを起動させます。

sudo systemctl start mysqld
sudo systemctl enable mysqld

# 状態確認(Active: active (running) になればOK)
sudo systemctl status mysqld

3. セキュリティの要!初期設定(mysql_secure_installation)

MySQLは起動した直後、仮のパスワードが発行されています。これを確認し、セキュリティ設定を固める必要があります。

3-1. 仮パスワードの確認

sudo grep 'temporary password' /var/log/mysqld.log

画面に表示された末尾の文字列をメモしてください。

3-2. 初期セキュリティ設定の実行

以下のコマンドを実行し、対話形式で設定を進めます。

sudo mysql_secure_installation
  1. Enter password for user root: 先ほどの仮パスワードを入力。
  2. VALIDATE PASSWORD COMPONENT: パスワードの強度チェック機能を有効にするか(y推奨)。
  3. New password: 自分の本パスワードを設定(英大文字・小文字・数字・記号を含めること)。
  4. Remove anonymous users?: 匿名ユーザーを削除するか(y推奨)。
  5. Disallow root login remotely?: 外部からのrootログインを禁止するか(y推奨)。
  6. Remove test database?: テスト用DBを削除するか(y推奨)。
  7. Reload privilege tables now?: 設定を今すぐ反映させるか(y推奨)。

4. データベースの「3階層構造」を理解する

MySQLを操作する前に、頭の中に「データの入れ物」のイメージを作りましょう。MySQLは「マトリョーシカ」のような階層構造になっています。

  1. データベースサーバー: システム全体の大きな箱(今回インストールしたもの)。
  2. データベース (Database): システムごとに分ける中くらいの箱(例:ブログ用、ECサイト用)。
  3. テーブル (Table): データの種類ごとに分ける小さな箱(例:ユーザー一覧、記事一覧)。
  4. レコード (Record / Row): 実際のデータ1行分。

5. 実践:最初のデータベースとユーザーを作成してみよう

rootユーザー(管理者)でログインし、自分の「作業用データベース」と「専用ユーザー」を作成します。rootを常に使うのは危険なので、この手順は必須です。

5-1. MySQLへのログイン

mysql -u root -p

パスワードを入力し、プロンプトが mysql> になれば成功です。

5-2. データベースの作成

「linux_koubou_db」という名前のデータベースを作ります。

CREATE DATABASE linux_koubou_db CHARACTER SET utf8mb4;

5-3. ユーザーの作成と権限付与

「kou_user」という名前のユーザーを作成し、今作ったDBだけにフルアクセスできるようにします。

CREATE USER 'kou_user'@'localhost' IDENTIFIED BY '強固なパスワード';
GRANT ALL PRIVILEGES ON linux_koubou_db.* TO 'kou_user'@'localhost';
FLUSH PRIVILEGES;

6. AIを活用したSQL学習法:プロンプトのコツ

SQLは「書き方のパターン」を覚えるまでが大変です。そんな時はAIに「先生」になってもらいましょう。

6-1. 学習用プロンプトの例

「MySQLの初心者です。
『商品管理システム』を作りたいのですが、
1. データベースを作成するSQL
2. そのDBを操作する専用ユーザーを作成するSQL
を、1行ずつ意味を解説しながら出力してください。
また、初心者がやりがちなセキュリティミスについても3つ教えてください。」

AIを使えば、エラーが出た時も mysql> のエラー内容をそのまま貼り付けるだけで、スペルミスや権限不足を即座に指摘してくれます。


まとめ:一歩踏み出した「データの魔法使い」への道

第1回の講座、お疲れ様でした!

今日は「MySQLのインストール」と「環境の初期化」という、最も重い一歩をクリアしました。これであなたのAlmaLinuxは、ただのWebサーバーから「データを記憶するインテリジェントなサーバー」へと進化しました。

次回、第2回「テーブル設計の極意:データ型と主キーの重要性」では、いよいよDBの中に具体的な「表(テーブル)」を作っていきます。データをどのように定義すれば効率的なのか、プロの設計思想をじっくり解説します。お楽しみに!

▼ MySQLの練習環境を整えよう ▼

データベースの負荷にも強い
「NVMe SSD採用の高速VPS」

VPSおすすめ比較

バックエンドエンジニアとして
「市場価値を劇的に高める」

エンジニア転職の相談

コメント