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

MySQLMySQLBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、最も人気のあるオープンソースのリレーショナルデータベース管理システム(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のさまざまな設定と操作データを格納しています。

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

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

userテーブルの構造を見るには、次のコマンドを実行します。

DESCRIBE user;

これにより、userテーブルのすべての列が表示されます。このテーブルには、各MySQLユーザーに関する詳細な情報が含まれているため、たくさんの列が表示されます。

では、このテーブルの一部のデータを見てみましょう。いくつかの重要な列に焦点を当てます。

SELECT User, Host, Password_expired FROM user;

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

  • 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;

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

まとめ

この実験では、Docker環境でMySQLを操作するための基本的な手順を学びました。MySQLのインストールを確認し、初期設定をセキュアにし、MySQLシェルにアクセスし、システムデータベースを調べ、システムテーブルのデータを調べました。

以下のことができるようになりました。

  1. MySQLサービスの状態を確認して管理する
  2. MySQLシェルにアクセスする
  3. システムデータベースを表示する
  4. システムデータベース内のテーブルを調べる
  5. システムテーブルからデータを照会する

これらの基本的なスキルは、より高度なデータベース管理タスクの基礎を形成します。MySQLの学習を続けるにつれて、これらの基本を基に自分自身のデータベースを作成し、高度な照会を書き、さまざまなアプリケーションとMySQLを統合するようになります。覚えておいてください。練習こそがデータベース管理をマスターする鍵です。だから、さまざまなコマンドを試して、MySQLの機能をさらに探求することをためらわないでください。