MySQLをインストールして設定まで行いましたが、これは「データを管理する機能がサーバに備わった」だけに過ぎません。
このMySQLの上で動く「データベース」というスペースを作り、その中に「テーブル」というデータを格納する表を作ることで初めてデータベースの中にデータを入れることができます。
そして、テーブルに格納された諸々のデータを操作して利用していくのです。
その前に、データベースを操作する言語であるSQLについて簡単に説明しましょう。
SQL(Structured Query Language)というのはデータベースを操作するために作成された言語で、データの定義(このデータは文字からできていて6桁まで格納するよ、とかあのデータは8桁の数字を格納するよ、みたいな感じです)を行ったりデータの操作(表にデータをつっこんだり、データを更新したり、格納されたデータを引っ張り出してみたり)を行う言語です。
データベースの中にはGUI(Graphical User Interface:視覚的に操作するユーザインターフェイス)を備えているものもたくさんあるのですが、その操作は内部的にはSQLに変換されて実行されているのです。
つまりSQLがある程度わかればGUIに頼らずともデータベースを操作することが可能になります。
光回線が普及している現在では大きな問題ではないかもしれませんが、GUIは基本的にデータ量が大きいので回線に負担をかけがちです。
しかしSQLを直接入力するのであればコンソールを使ったCUI(Character User Interface:文字を使ったユーザインターフェイス)で操作することができ、リモートでの操作もしやすくなります。
徐々にですがSQLを使って慣れていきましょう。
それではコンソールからMySQLを起動します。
mysql -u root
と入力します。すると
Welcome to MySQL!!
みたいなのが表示されてMySQLが起動します。
さっき入力したのは
「MySQLにユーザ名:rootでログインします。」
というような意味です。ちなみにこれはSQLでは無いのであしからず。まだMySQL上の動作ではなく、そのMySQLを起動するコマンドですので。
また、ユーザ:rootというのはLinuxのスーパーユーザと同じくMySQL上の全権限をもったユーザということになります。
MySQLを起動する際、パスワードらしきものは一切なかったですね。
これ、とても危険なのでまずはrootに対するパスワードを付与します。
さあお待ちかね、これからがSQLの出番です。
set password for root@localhost=password('パスワード');
と入力します。文末の;(セミコロン)は必須ですのでお忘れなく。忘れると改行を挟んだだけとみなされて何も起きないので、必ずつけてください。もし忘れて改行してしまったら;のみ入力してエンターキーを押せば大丈夫。
こうすると次回からrootでログインする際には
mysql -u root -p
と入力したあとパスワードを聞かれるので、そこでパスワードを入力することで起動できるようになります。
そしてLinuxと同様、rootで作業するということは処理を間違えると全てのデータが消えたり、下手をすればMySQLが壊れたりするという非常に危険なユーザなのでまずは「データベース領域」と「それを操作するためのユーザ」を作成してしまいます。
ここではsampleという名のデータベースとそれを操作するsampleというユーザを作成してみます。
create database sample;
と入力して
Query OK, 1 row affected (0.00 sec)
と表示されれば無事成功。
Error ~ と出た場合は入力を間違えていないか確認してみてください。
これで「sample」というデータベース(データを格納したり操作したりする領域)が確保されました。
今度はsampleデータベース上でのみ全ての権限をもつ「sample」というユーザを作成します。
grant all privileges on sample.* to sample@localhost identified by 'パスワード';
注意!パスワードは'(シングルクォーテーション)で囲みましょう。MySQLでは文字のデータは'で囲むのが決まりなんです。
と入力すると上記の設定のsampleユーザが出来上がります。
これもError ~ と出るなら入力内容を確認してみましょう。
こちらは
- パスワードで保護された(identified by 'パスワード')
- localhost上で動作するsampleというユーザ(to sample@localhost)に
- sampleデータベース上の全てのデータ(on sample.*)に対して
- 全ての権限を付与する(grant all privileges)
というような意味です。
それではここまで行った操作の結果を確認しておきましょう。
exit
と入力して一度MySQLを終了します。
そして
mysql -u root -p
と入力します。
パスワードを求められたら上で設定したrootのパスワードを入力します。(何も表示されませんが気にせず入力してエンターを押します)
MySQLを起動できたらrootのパスワード設定は成功です。
続いて
show databases;
と入力してみましょう。
一覧の中に「sample」という名前が出てくればsampleデータベースが作成されたことが確認できます。
もう一度exitでMySQLを終了した後
mysql -u sample -p
続けてsampleのパスワードを入力して起動できたらsampleユーザが作成されていることが確認できます。
さらに
use sample;
と入力して「Database Change」と表示されれば完璧です。
このようにして言語で操作するのはめんどくさく感じるかも知れませんが、慣れれば動作も軽いし結構使いやすいものですよ。
次に利用するとしたらWordpressの設定の時ぐらいかもしれませんが、またその時に。