データベース接続と SQL Shell

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

はじめに

MySQL と MariaDB は、アプリケーションデータの保存と整理に使用されるリレーショナルデータベースシステムです。通常のファイルとは異なり、データベースサーバーは、構造化されたクエリ、同時アクセス、権限、永続的なストレージを適切に管理できるように設計されています。

そのため、通常はデータベースファイルをテキストエディターで開いて手作業で変更することはありません。データベースクライアントを介して操作し、サーバーが構文、権限、データの整合性に関するルールを適用します。

データを管理するには、データベースサーバーとの通信方法を理解する必要があります。この実験では、MySQL に接続し、SQL Shell に入り、データベースを対話的に操作するための基本的なコマンドライン手順を学びます。

次のような、データベース管理者が行う基本的な手順を練習します。

  1. サーバーに安全に接続する。
  2. サーバーに保存されているデータベースを確認する。
  3. 操作対象のデータベースを選択する。
  4. 作業が終わったら安全に切断する。

データベースサーバーに接続する

MySQL データベースを操作するには、コマンドラインクライアントの mysql を使用します。このツールを使うと、サーバーにコマンドを送信し、結果を確認できます。

このステップでは、root ユーザーとしてログインします。root ユーザーは、データベースサーバー上のすべてにアクセスできるスーパー管理者アカウントです。

データベースの root ユーザーと Linux の root ユーザーを混同しないように注意してください。どちらも高い権限を持ちますが、異なるシステム上に存在する別々の管理者 ID です。

ターミナルで次のコマンドを実行します。

mysql -u root -p

オプションの説明:

  • -u root:使用するユーザー名(username)として root を指定します。
  • -p:クライアントにパスワードの入力を促す(prompt)よう指示します。

Enter キーを押すと、パスワードの入力を求められます。

root と入力し、Enter キーを押します。

セキュリティに関する注意:Linux ターミナルでパスワードを入力しても、画面には文字が表示されません(アスタリスクやドットも表示されません)。これは、背後から画面を見ている人にパスワードの長さを知られないようにするセキュリティ機能です。画面に何も表示されなくても root と入力し、Enter キーを押してください。

認証に成功すると、プロンプトが mysql> に変わります。これは Linux Shell を抜け、MySQL 環境に入ったことを示します。

ここからは、コマンドが SQL 文としてデータベースサーバーに送信されます。プロンプトが変わるのは、現在いる場所が別のコマンド言語とコンテキストだからです。

利用可能なデータベースを確認する

接続できたので、サーバーにどのようなデータが保存されているかを確認できます。1 台の MySQL サーバーで、複数の異なるデータベースを管理できます(たとえば、ブログ用、ユーザーディレクトリ用、メトリクス用など)。

ユーザーがアクセスできるすべてのデータベースを一覧表示するには、mysql> プロンプトで次の SQL コマンドを実行します。

SHOW DATABASES;

重要なルール:SQL では、コマンドをセミコロン ; で終了する必要があります。

これは、SQL クライアントが 1 つの文の終わりを認識するための仕組みです。対話型 Shell では、セミコロンが「今すぐ実行する」ことを示す明確な記号として機能します。

セミコロンによって、サーバーに「コマンドの入力が終わったので、今すぐ実行してください」と伝えます。

セミコロンを付け忘れて Enter キーを押すと、-> プロンプトが表示されます。これは、サーバーがコマンドの続きを待っていることを示します。その場合は ; と入力して Enter キーを押してください。

information_schema、mysql、performance_schema、sys などの標準的なシステムデータベースを含む一覧が表示されます。

データベースを選択する

データテーブルの読み取りや書き込みを行う前に、操作対象のデータベースを MySQL に指定する必要があります。これにより「コンテキスト」が設定され、以降の各クエリでデータベース名を入力する必要がなくなります。

1 台のデータベースサーバーには、複数の独立したデータベースをホストできます。USE コマンドを実行すると現在のコンテキストが変わり、以降の SQL 文が選択したデータベースに対して解釈されます。

ここでは、ユーザーアカウントと権限を保存している内部システムデータベース mysql を選択します。

次のコマンドを実行します。

USE mysql;

Database changed というメッセージが表示されます。

注:USE コマンドは、厳密にはセミコロンがなくても実行できます。ただし、セミコロンを付ける習慣を身につけておくとよいでしょう。

SQL Shell を終了する

データベースでの作業が終わったら、接続を正しく閉じます。これにより、通常の Linux コマンドラインに戻ります。

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

exit

Bye というメッセージが表示され、プロンプトが見慣れた labex:~/project$ に戻ります。

ヒント:quit またはキーボードショートカットの Ctrl + D を使って終了することもできます。

まとめ

この実験では、データベース操作の「Hello World」ともいえる基本を学びました。

  • mysql -u -p を使って安全に接続する。
  • SHOW DATABASES; で利用可能なデータベースを表示する。
  • USE <database>; でコンテキストを切り替える。
  • 環境を安全に終了する。

この 4 つの基本コマンドが、MySQL で行うすべての作業の基礎になります。