こんにちは!「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. 初期セキュリティ設定の実行
以下のコマンドを実行し、対話形式で設定を進めます。
<7/19 ~26限定 全品15倍 要エントリー>試して理解Linuxのしくみ 実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識/武内覚 価格:3520円 |
sudo mysql_secure_installation
- Enter password for user root: 先ほどの仮パスワードを入力。
- VALIDATE PASSWORD COMPONENT: パスワードの強度チェック機能を有効にするか(y推奨)。
- New password: 自分の本パスワードを設定(英大文字・小文字・数字・記号を含めること)。
- Remove anonymous users?: 匿名ユーザーを削除するか(y推奨)。
- Disallow root login remotely?: 外部からのrootログインを禁止するか(y推奨)。
- Remove test database?: テスト用DBを削除するか(y推奨)。
- Reload privilege tables now?: 設定を今すぐ反映させるか(y推奨)。
4. データベースの「3階層構造」を理解する
MySQLを操作する前に、頭の中に「データの入れ物」のイメージを作りましょう。MySQLは「マトリョーシカ」のような階層構造になっています。
- データベースサーバー: システム全体の大きな箱(今回インストールしたもの)。
- データベース (Database): システムごとに分ける中くらいの箱(例:ブログ用、ECサイト用)。
- テーブル (Table): データの種類ごとに分ける小さな箱(例:ユーザー一覧、記事一覧)。
- レコード (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」
バックエンドエンジニアとして
「市場価値を劇的に高める」

コメント