第15日目:教えて('A`) 〜MySQLって何?(その2)〜
|
どうも、('A`)です。
昨日はMySQLについて概要をお話しましたが、具体的なテーブルの作成とか
データの追加まで辿り着けませんでした。なので、今日はデータベースの
操作方法を説明します。
・・・というか先日ロードバランサーのテスト用サーバを確保しOSの再インストール
要請まで出したのですが、アクシデントでやり直しになりました。
鯖子J( 'ー`)し から「6.2Rじゃなくて5.5Rが入ってたわー」と聞かされて、ちょっと
落ち込んでいます。
あと、昨日日記をアップした後で次の日記を書く準備をしていると、背後から
人の気配が・・・うっ、エース!!( ,_ノ` )y━・~~~
( ,_ノ` )y━・~~~「今日の日記についてなんですけど。。。」
('A`):「なんでしょうか?(ドキドキ)」
( ,_ノ` )y━・~~~「InnoDBは使えます!(キッパリ)」
('A`):「えぇぇぇ、でも /etc/my.cnf にパラメータを記述しないと動かないんじゃ
なかったでしたっけ?」
( ,_ノ` )y━・~~~「それはInnoDBのテーブルやログファイルを大きく割り当てたり
トランザクション処理の効率(パフォーマンス)を調整する際には
必要となりますが、MySQLの4.0以降ではデフォルトとして
・10MBのデータエリアが1つ(ibdata1)
・5MBのログファイルが2つ(ib_logfile0,1)
利用できるんですよ。」
('A`):「あわわ、日記を訂正しなきゃ。」
( ,_ノ` )y━・~~~「お願いしますよ。あとphpMyAdminは弊社で動作が確認
できているバージョンを使って下さいよ。」
('A`):「は、はいっ(汗」
|
流石は弊社BIG-servrのNo.1セールスマンのエース( ,_ノ` )y━・~~~
BIG-serverの販売&サポートをずーっと手がけている人なので、色んな人達から
様々な問い合わせを受けて回答しています。
なので、こういう時のチェック&突っ込みも半端じゃありません。。。
(本当は今日代わりに書いて欲しいくらいです、ハイ。)
なので、昨日の日記に訂正をいれつつ、今日は突っ込み入れられない様に
しっかり書きます。
では、phpMyAdminを使ってのデータベース構築の説明に入りますね。
【phpMyAdmin‥‥すごく便利なツール】
もう多くの人はご存知かもしれませんが、これからご紹介する phpMyAdmin は、
Webブラウザから MySQL データベースの管理・操作が簡単にできるフリーの
ソフトウェアです。
Banana&T-Bananaサーバには標準でインストールされていませんが、サーバに
アカウントを持っているユーザであれば、とても簡単にインストールして使用できます。
弊社で動作確認ができているphpMyAdminのバージョンは 2.7.0-pl2 です。
このphpMyAdminのインストール方法は以下の通りです。
1) このリンクをクリックしてソースファイルをローカルにダウンロードする。
2) ダウンロードしたソースファイル(phpMyAdmin-2.7.0-pl2.tar.gz)をFTPを使って
サーバのアカウントのpublic_htmlディレクトリにアップロードする。
3) アップロードしたソースファイルを次のコマンドで解凍します。
tar zxvf phpMyAdmin-2.7.0-pl2.tar.gz
4) 解凍すると phpMyAdmin-2.7.0-pl2 というディレクトリができるので、
mvコマンドを使って自分の扱いやすい名称にリネームします。
(今回('A`)の方では説明の関係上 phpmyadmin という名称に
リネームしています。)
mv phpMyAdmin-2.7.0-pl2 phpmyadmin
|
インストールは以上で終わりですが、実際にphpMyAdminを動かすには設定ファイルを
修正する必要があります。
設定ファイルはディレクトリ内に config.defaulp.php という名前で存在しています。
次に設定ファイルの修正方法を説明します。
1) FTPを使って config.default.php をローカルにダウンロードする。
2) テキストエディタを使って config.default.php を開く。
3) 以下の5個所を修正する。
31行目 : $cfg['PmaAbsoluteUri'] =
'http://ドメイン名/(phpMyAdminのディレクトリ名)/';
57行目 : $cfg['Servers'][$i]['host'] = 'localhost';
58行目 : $cfg['Servers'][$i]['port'] = '3306';
72行目 : $cfg['Servers'][$i]['user'] = 'DBユーザ名';
73行目 : $cfg['Servers'][$i]['password'] = 'DBパスワード';
363行目 : $cfg['DefaultLang'] = 'ja';
(ここで「DBユーザ名」はMySQLのユーザ名、「DBパスワード」はMySQL
パスワードを指定します。)
4) 修正した config.default.php を保存したら、FTPを使ってファイルを
アップロードします。(phpMyAdminのディレクトリにアップロード
して下さい。
|
これで設定が終わりました。
ではブラウザから http://ドメイン名/(phpMyAdminのディレクトリ名)/ に
アクセスしてみましょう。
正しく設定すると、ブラウザに以下の様な画面が表示されます。
(これがphpMyAdminのメニュー画面です。)

(図1)
【phpMyAdminを使ってのテーブル作成】
本来MySQLでテーブルを作成したり、データを入力する場合には「SQL」という
「データベース言語(命令)」を使って操作します。しかし、('A`)も含めて
SQLに精通している人はあまり多くないと思います。
(もしかして('A`)だけだったりして・・・)
またMySQLを使う場合、MySQLシステムにログインする必要があります。
通常はTelnetやSSH経由でサーバにログインしてから、 mysql -p という
コマンドを打って、パスワードを入力して、やっと操作可能状態となります。
phpMyAdminは視覚的に「人にわかりやすく」これらの操作ができる様になっています。
先ほど説明した設定ファイルでMySQLシステムにログインするのに必要な情報も
指定しているので、ブラウザでアクセスするだけでphpMyAdmin側でログインの
一連の動作も行なってくれます。
ではこれからphpMyAdminを使って('A`)がロードバランサーのテスト用サーバ
(banana205、アカウントはjbana205)上で「サーバ一覧(server_list)という
テーブルをこれから試しに作ってみます。
(あ、ちなみにこの日記がアップされた時にはもう環境はサーバ上にありませんので
あしからず。)
テーブルの構成は以下の内容で設定します。
テーブル名:server_list
項目数:4つ
各項目の内容:
サーバ名(name):フィールドタイプはchar(固定長文字列)、長さは10桁
OSバージョン(os):フィールドタイプはchar(固定長文字列)、長さは12桁
IPアドレス(ip):フィールドタイプはchar(固定長文字列)、長さは15桁
所有者(owner):フィールドタイプはchar(固定長文字列)、長さは10桁
※「フィールドタイプ」はデータ型とも呼ばれます。
詳しくは・・・MySQLの専門書又は解説サイトで調べて下さい。
|
phpMyAdminのメニュー画面の左側に「データベース」と表示されているスクロール
バーがあります。そこから自分のデータベースをマウスで選択します。

(図2)
すると画面が切り替わります。そして「データベースにテーブルがありません」という
メッセージが表示されます。

(図3)
その下に「新規テーブルを作成する」と書かれた欄が表示されていますので、ここで
名前欄に server_list 、フィールド数欄に 4 と入力してから「実行ボタン」を押します。
すると画面が切り替わり、各フィールド(項目)の設定画面が表示されます。

(図4)
先ほど説明した各項目の内容で入力し、「保存する」ボタンをクリックします。

(図5)
すると「server_listを作成しました」とメッセージが表示されます。
これでテーブルが作成されました。
(あ、でも「枠」ができただけで、まだデータは1件も入っていない『空の状態』です。)

(図7)
んで、上記の画面をよく見ると「実行したSQL」という箇所があります。
これが画面で入力した裏側でphpMyAdminが実行していたSQL(CREATE TABLE命令)です。
phpMyAdminを使わずに直接MySQLシステムにログインしてこの命令を実行すると
同じ様にテーブルが作成されます。
(これは「SQLってどう書けばいいんだろう」という時に雛型として参考にできるので
('A`)としてはとても重宝しています。)
【phpMyAdminを使ってのデータ入力】
テーブルは作ったけど、どうやってデータを入力したら良いのでしょう?
では次にphpMyAdminを使って server_list テーブルにデータを入力してみます。
図7を見ると画面の上端に「追加」と書かれた下の図柄のボタンが表示されています。
このボタンをクリックして下さい。

すると図8の画面に切り替わります。この画面がデータ入力画面になります。

(図8)
試しに画面上の「値」と書かれた欄にデータを入力してみます。
(入力内容は以下の通り)
サーバ名(name):banana205
OSバージョン(os):FreeBSD 6.2R
IPアドレス(ip):206.223.151.30
所有者(owner):('A`)
|

(図9)
図9の状態から「実行する」ボタンを押すと画面が図10に切り替わり、データがテーブルに
1件追加されます。

(図10)
テーブルの作成でもお話した様に、データが追加された際には画面上に実行された
SQL命令が表示されます。(今回の場合にはINSERT命令です。)
ちょっと気を付けて欲しいのが、ownerの項目のデータが '(''A`)' という内容になっています。
SQLではデータの値を ' (シングルクォーテーション)で囲む事になっているのですが
今回の場合 ('A`) の中にも入っている為、「データとしての '」としてテーブルに
追加できる様にphpMyAdmin側で補完してくれたのです。
phpMyAdminを使わずに同じ事を直接SQL文で実行する場合には、この点に注意が
必要となります。
【データの更新・削除は‥‥SQLを直接入力】
入力したデータを表示するには、図7の上端に「表示」と書かれたボタンをクリックすると
図11の様に一覧の形で表示されます。

(図11)
あー、3行目の内容を間違えて入力していた・・・
(ownerのところが('A`) じゃなくて、J( 'ー`)しになってる。しかも何か文字化け
しているみたいだ。)
さっそくデータを訂正しようと思いましたが、どうやってデータを修正するんだろう。
画面上には「訂正」とか「更新」のボタンが無いし・・・
色々と調べてみたら、phpMyAdminからデータの更新や削除をする場合にはSQL文を
直接記述して実行するしか無い事が判りました。
うーん、どう記述するんだ・・・
参考書とか解説サイトを調べて方法を見つけたので、さっそく実行です。
まず、図7の上端に「SQL」と書かれたボタンをクリックします。
すると、図12の画面に切り替わります。(これがSQL文を入力する画面です。)
そこで、nameが「banana261」だったらそのレコードのownerに「('A`)」をセットして
更新する、というSQL文を入力します。入力したら「実行する」ボタンをクリックします。

(図12)
すると図13の画面に切り替わり、データが更新されました。

(図13)
もう一度「表示」ボタンをクリックして実際にデータが更新されたか確認します。
すると・・・ちゃんと更新されました。

(図14)
では今度はデータの削除を試してみます。
図7の上端に「SQL」と書かれたボタンをクリックして、SQL文を入力する画面を呼び出し、
図15の様に nameが「banana205」だったらそのレコードを削除するというSQL文を入力後、
「実行する」ボタンをクリック。

(図15)
すると画面上に「本当に実行しても良いの?」というメッセージ画面が表示されます。
記述に誤りはないので、「OK」ボタンをクリックします。

(図16)
そうすると図17の画面に切り替わり、「データを削除したよ」とメッセージが表示されました。
実際削除されたか確かめる為、「表示」ボタンを再度クリックします。

(図17)
確かにデータは削除されました。
データの更新や削除も、入力の時の様に簡単にできると良いと思うのですが、そこまで
サポートはしてくれないようです。
(少しは勉強しろ、という事なのか・・・)
さて、これで基本的な操作方法の説明は書けたかな、と思っているとJ( 'ー`)しが
「再インストール要請したサーバが戻ってきたよー」と教えてくれました。
よーし、さっそくサーバを仕上げてロードバランサーのテスト準備に取り掛かろうと
思っていると、また人の気配が・・・
( ,_ノ` )y━・~~~「どうですか、今日の日記は?」
('A`):「えーと、phpMyAdminを使っての基本操作について書いてみました。」
( ,_ノ` )y━・~~~「どれどれ・・・うーん。」
('A`):「え、え、またどこか間違っているの?」
( ,_ノ` )y━・~~~「いえいえ、よく書けていると思いますよ。ただね・・・」
('A`):「ただ・・・」
( ,_ノ` )y━・~~~「データ入力の際に文字化けがあった事が書かれていますが、
これはどう対処するのですか?」
('A`):「う、うー、日本語の入力ってphpMyAdminからできないのかなあ・・・」
( ,_ノ` )y━・~~~「できます!!(キッパリ) その方法を書かないと、この件は
終われないですねぇ。」
('A`):「はわわ、、、」
( ,_ノ` )y━・~~~「じゃあ引き続き、お願いしますよ。」
('A`):「orz・・・」
|
エース( ,_ノ` )y━・~~~ からの「念押し」が入りました。
なんか泥沼にはまってしまった感がありますが、確かに文字化けしちゃうのは
どうにかしないと、と思っています。
明日は早々にこの件を解決して説明できる様にします。
(それに早くロードバランサーの方にも戻りたいし・・・)
そんな訳で明日も引き続きMySQLのお話です。
それでは、また。
|
|
|
|
|