大量のデータを管理するのが「データベース」というソフトウェアです。
例えばYahoo! JAPANなどのWebサイトは、大量の顧客データをデータベースを使って管理しています。ユーザーがログインする際、内部的にはデータベースに当該ユーザーが存在するかを確認しています。
データベースを管理するソフトウェアには、Microsoft社が提供する「SQL Server」やOracle社が提供する「Oracle Database」など様々な種類があります。
ここでは、世界で最も使われている「MySQL」を扱います。
データベースの基本構造
データベース管理ソフトウェアであるMySQLの中には、複数のデータベースをつくることができます。例えば、システムA用のデータベースA、システムB用のデータベースB…といったイメージです。
そのデータベースの内部では下図のように、顧客データを管理するための「顧客データ」や、商品データを管理するための「商品データ」など、様々なデータをもつことができます。各データはExcelのような表の形になっています。
この表では、何百万・何千万というデータをもつことができます。
データベースでは、この表のことを「テーブル」と呼びます。
上図の例では「顧客テーブル」と「商品テーブル」があることになります。
さらに、表の列のことを「カラム」、表の行のことを「レコード」、表のセルのことを「フィールド」と呼びます。これは覚えるしかありません。
データベースでは、レコードが誰かや何かを特定するデータの塊になります。
上図でいうと、山田一郎さんは、ユーザーID「1番」で、年齢「30歳」で、メールアドレスは「ichiro.yamada@test.com」であり、このレコードが山田一郎さんのデータの塊になるのです。
MySQLの起動
以前、MAMPをインストールしました。実はXAMPPの中にMySQLが同梱しているのです。
MAMPが以下のような表示になっていれば、MySQLも起動しています。
MySQLへのログイン
データベースにアクセスするにはログインが必要です。
前述の通り、データベースには顧客データなど重要なデータが保管されています。
よって、誰でもアクセスできないように、ログインを必要とします。
ターミナルで以下を入力し、MySQLが存在するフォルダに移動します。
cd /Applications/MAMP/Library/bin
続いて以下を入力し、MySQLにログインを試みます。
「mysql」はMySQLにアクセスするという意味で、「-u」でユーザーを指定し(ここでは直後の「root」がユーザー名になります)、「-p」でパスワード入力をさせるように指示しています。
./mysql -uroot -p
「Enter password」でパスワードを要求されます。MySQLのデフォルトは「root」ですので、「root」と入力してReturnを押して下さい。
「mysql>」や「MariaDB>」のように表示されればOKです。
これは、MySQLのログインに成功し、「いまMySQLの中にいる」という意味になります。MySQLの中に入ったので、コマンドプロンプトでの入力を通じてMySQLに指示を出すことができます。
MySQLでのユーザー作成
先ほどはユーザー「root」でMySQLにログインしました。
しかし、初期パスワードが「root」で決まっているように、セキュリティに問題があります。
よって、新しくユーザーをつくり、そのユーザーにパスワードを設定します。
ターミナルで「mysql>」や「MariaDB>」のように表示されている状態で以下を入力します。
create user ‘sato’@localhost identified by ‘test_password’;
「create user」は文字通り「ユーザーをつくれ」という命令で、「sato」がユーザー名です。次の「@localhost」は、「at localhost」すなわち「自分の環境に(=このMySQLに)」という意味です。つなげると、「このMySQL内にsatoというユーザーをつくれ」という意味です。
「identified by」の後にパスワードを入力します(ここでは「test_password」というパスワードにしています)。
この状態では、追加したユーザーはMySQLを操作する十分な権限をもっていません。
よって、以下を入力して、追加したユーザーに権限を与えます。
grant all privileges on *.* to ‘sato’@localhost;
「grant all privileges」は文字通り「すべての権限を与える」という命令で、次の「on *.*」は覚えるしかありません。次の「’sato’@localhost」は前述の通り、「このMySQL内のユーザーsato」という意味です。つなげると、「このMySQL内のユーザーsatoにすべての権限を与える」という意味です。
最後にセミコロン(;)を付けて下さい。これが1つの命令の区切り文字になります。
作成したユーザーでログインしてみます。
現在は、ユーザー「root」でログインしている状態なので、「exit;」を実行することでMySQLからログアウトします。
MySQLからログアウトし、「/Applications/MAMP/Library/bin」に戻ってきました。
続いて、以下を入力して、ユーザー「sato」でログインします。
./mysql -u sato -p
ユーザー指定の「-u」に対して、追加したユーザーである「sato」を指定しています。
ユーザー「sato」にはパスワードを設定したので、今度はパスワードを入力した上でEnterを押して下さい。
先ほどと同じように、「mysql>」や「MariaDB>」のように表示されればOKです(=追加したユーザーでログインできました)。
本節の説明は以上になります。