MySQL のインストールと基本設定

MySQLBeginner
オンラインで実践に進む

はじめに

この実験では、最も人気のあるオープンソースのリレーショナルデータベース管理システム(RDBMS)の 1 つである MySQL の基本的な設定と使い方を学びます。MySQL は、多くのデータベース駆動の Web アプリケーションや人気のあるウェブサイトで広く使用されています。この実験が終了するとき、あなたは MySQL のインストールを確認し、初期設定をセキュアにすること、MySQL シェルにアクセスすること、およびシステムデータベースとテーブルを調べることに関する実践的な経験を得るでしょう。

MySQL のインストールを確認する

便利のために MySQL はあなたのシステムに事前にインストールされています。ただし、インストールプロセスを理解することが重要です。典型的な Ubuntu 環境では、次のコマンドを使用して MySQL をインストールします。

次のコマンドは参考のみです。実行する必要はありません。なぜなら、MySQL は既にあなたの環境にインストールされているからです。

## これらのコマンドを実行しないでください
sudo apt update
sudo apt install mysql-server -y

apt updateコマンドはパッケージリストを更新して、利用可能なパッケージに関する最新情報を確認します。apt install mysql-server -yコマンドは MySQL サーバーパッケージをインストールします。-yフラグは、インストール中に表示されるプロンプトに対して自動的に「はい」と回答するために使用されます。

まずは、MySQL のインストールを確認してその状態をチェックしましょう。

まず、デスクトップのターミナルアイコンをクリックしてターミナルウィンドウを開きます。

デスクトップのターミナルアイコン

ターミナルに入ったら、次のコマンドを実行して MySQL の状態を確認します。

sudo service mysql status

このコマンドは、システムレベルの操作ではよく必要となる管理者特権で実行するためにsudoを使用しています。service mysql statusの部分は、システムに MySQL サービスの現在の状態を報告させます。

MySQL サービスの状態出力

MySQL が停止していることを示す出力が表示されるはずです。これは予想される結果で、まだ MySQL サービスを起動していないからです。

sudo service mysql start

サービスが起動するまで数秒待った後、再度状態コマンドを実行します。

MySQL サービスの状態出力

MySQL シェルにアクセスする

さて、MySQL シェルにアクセスして基本的な操作を行いましょう。

MySQL シェルにアクセスするには、次のコマンドを使用します。

sudo mysql -u root

このコマンドは、システムレベルの操作でよく必要となる管理者特権で実行するためにsudoを使用しています。mysqlコマンドは MySQL シェルにアクセスするために使用され、-u rootフラグはrootユーザーとして接続していることを指定します。

この場合、パスワードを入力する必要はありません。なぜなら、LabEx VM 上の MySQL インストールは、rootユーザーがパスワードなしでログインできるように構成されているからです。これは開発環境では一般的ですが、本番システムでは行わないでください。

成功すると、歓迎メッセージと MySQL のプロンプトが表示されます。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

これで MySQL シェルに入ったので、SQL コマンドを実行できます。

MariaDB [(none)]>プロンプトは、MariaDB(MySQL の分岐)に接続しており、現在特定のデータベースを使用していないことを示しています。

プロンプトや出力に「MariaDB」が表示されることに注意することが重要です。心配しないでください。これは、この実験を完了したり、MySQL コマンドを学んだりする能力に影響を与えません。理由は次の通りです。

  1. MariaDB は MySQL の元の開発者によって作成された MySQL の分岐です。MySQL の完全な代替品として設計されており、MySQL の構文と操作と完全に互換性があることを意味します。
  2. MariaDB は、本当にオープンソースな MySQL のバージョンが常に利用可能であることを確保するために作成されました。MySQL との高い互換性を維持しながら、独自の機能と改善も提供しています。
  3. この実験の目的と、ほとんどの基本的な中級の MySQL 操作に関しては、MariaDB を MySQL とまったく同じように扱うことができます。この実験で使用するすべてのコマンドは、MariaDB と MySQL の両方で同じように機能します。
  4. MariaDB は、MySQL よりも軽量で高速であると考えられており、このような学習環境に最適な選択肢です。応答時間が速くなることがあり、学習経験を円滑にすることができます。
  5. オープンソースの性質とパフォーマンスの利点のため、Ubuntu の一部のバージョンを含む多くの Linux ディストリビューションは、現在、MariaDB を既定の MySQL 互換データベースシステムとして使用しています。

したがって、プロンプトや出力に「MariaDB」が表示されたときは、この実験の目的では、それを MySQL と同じように考えることができます。ここで学ぶすべてのスキルは、現実のシナリオで MariaDB と MySQL の両方に直接適用されます。

システムデータベースを調べる

MySQL シェルに入ったので、システムデータベースを調べましょう。これらは MySQL に事前にインストールされており、MySQL サーバー自体に関する重要な情報を含むデータベースです。

MySQL シェルで、次のコマンドを実行します。

SHOW DATABASES;

: コマンドの末尾のセミコロン (;) を忘れないでください。SQL コマンドはセミコロンで終わる必要があります。

MySQL のデータベース一覧出力

このコマンドは、MySQL サーバーに存在するすべてのデータベースを一覧表示します。次のような出力が表示されるはずです。

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

これらのデータベースが何であるか解説しましょう。

  • information_schema: これは、データベースのメタデータにアクセスするためのデータベースです。
  • mysql: このデータベースには、MySQL サーバーの動作に必要な情報が含まれています。
  • performance_schema: このデータベースは、実行時にサーバーの内部実行を検査するための方法を提供します。
  • sys: このデータベースには、performance_schema によって収集されたデータを解釈するのに役立つオブジェクトのセットが含まれています。

この実験では、mysqlデータベースに焦点を当てます。切り替えましょう。

USE mysql;

では、このデータベースにどのテーブルがあるか見てみましょう。

SHOW TABLES;

たくさんのテーブルの一覧が表示されます。これらのテーブルは、MySQL のさまざまな設定と操作データを格納しています。

システムテーブル内のデータを調べる

システムテーブルを確認したので、その中のデータを調べてみましょう。mysql データベースの user テーブルには、MySQL のユーザーアカウントに関する情報が含まれています。

以下のコマンドを実行して、user テーブルの構造を確認してください。

DESCRIBE user;

これにより、user テーブルのすべてのカラムが表示されます。このテーブルには各 MySQL ユーザーの詳細情報が含まれているため、多くのカラムが表示されるはずです。

次に、このテーブルのデータの一部を見てみましょう。いくつかの主要なカラムに焦点を当てます。

SELECT User, Host, Password_expired FROM user;

このクエリは、user テーブルから 3 つの重要なカラムを選択します。

  • User: MySQL アカウントのユーザー名
  • Host: このユーザーが接続を許可されているホスト
  • Password_expired: パスワードが期限切れかどうか

以下のような出力が表示されるはずです。

+-------------+-----------+------------------+
| User        | Host      | password_expired |
+-------------+-----------+------------------+
| mariadb.sys | localhost | Y                |
| root        | localhost | N                |
| mysql       | localhost | N                |
+-------------+-----------+------------------+
3 rows in set (0.001 sec)

この出力は、システムに存在する MySQL ユーザーアカウントを示しています。root ユーザーはメインの管理者アカウントであり、その他は MySQL がさまざまな目的で使用するシステムアカウントです。

MySQL シェルを終了するには、次のように入力します。

EXIT;

これにより、通常のターミナルプロンプトに戻ります。

まとめ

この実験では、LabEx VM で MySQL を扱うための基本的な手順を網羅しました。MySQL のインストール確認、初期設定のセキュリティ強化、MySQL シェルへのアクセス、システムデータベースの探索、システムテーブル内のデータの調査を行いました。

以下の方法を学びました。

  1. MySQL サービスの状態を確認および管理する方法
  2. MySQL シェルにアクセスする方法
  3. システムデータベースを表示する方法
  4. システムデータベース内のテーブルを探索する方法
  5. システムテーブルからデータをクエリする方法

これらの基本的なスキルは、より高度なデータベース管理タスクの基礎となります。MySQL を使い続ける中で、これらの基本を基盤として、独自のデータベースを作成し、洗練されたクエリを記述し、さまざまなアプリケーションと MySQL を統合していくことになります。データベース管理を習得するには実践が鍵となりますので、さまざまなコマンドを試したり、MySQL の機能をさらに探求したりすることをためらわないでください。