home back CAR SHOP 松井 owner's page MySQLデータベース構築期
2004年1月現在の状況
私の店では顧客台帳と会計をACCESSにて稼動させている。ACCESSでも別に不満はないのだが、やはりもっと自由度のあるWEBデータベースが利用したくなった。最近よく耳にするMySQLとpostgreSQLのどちらかでの構築に挑戦しようと思った。postgreSQLはかなり歴史が古く商用でもよく使われているようだ。perlでの利用が一般的である。MySQLはPHPと共に最近人気が出てきた。聞くところによるとMySQLはコマンドも洗練されていて堅牢である。PHPとの相性もいいらしい。PHPはwwwサーバーであるアパッチに埋め込んで使用するようになっている。
 
第一ステップ サーバーのハードとソフト  

常時稼動だからそれに見合う部品を使用した。電源には負荷に応じてファンスピードが変わるちょっと高価な物を使用した。マザーボードはASUSのP4S800SでこれもCPUのファンスピードがインテリジェントに調節できるやつだ。CPUは2004年度にしては安くてハイスピードだったPEN IIII 2.8GHz である。メモリもDUAL DDR 256X2とかいうやつである。あとはソフトであるが Fedora Core1で作る自宅サーバfor Linux とかいう本を購入これには必要なソフトは全部ついている。とにかく自動で全部インストールしてしまう。 ここで特筆しておかなければならない。linuxサーバで使用するソフトはすべて無料である。  
  サーバーの設定  
インストールが成功したらとりあえず先にやっておくことがある。サーバとして使用するにはLANで接続するためにIPアドレスを固定しなければならない。これをやっておかないとクライアントがアクセスできない。後はlinuxを操作するためのユーザーを登録する。次に大事なのはhostsというファイルにhost名とIPアドレスとの関係を記述するのである。これでようやくlinuxがLANと接続できるのである。デフォルトだとMySQLはoffになっているのでシステムのサービス設定でonにする。 ついでにFTPサーバもonにしておく。MySQLを使用するにはさらにMySQLようのユーザーを登録しなければならない。実にややこしいですね。 パスワードはなくてもよいがここはユーザーとパスワードはしっかり登録しておく今後MySQLにアクセスするにはそのたび必要となるので忘れてはならない。これでMySQLが使用できるようになった。PHPで使用する前にMySQLのコマンドは一通り実際にlinux のコンソールで入力してその結果を把握しておく必要がある。最後にもう一つやっておかなければならない。ウインドウズと同じでlinuxもアップデートをするのである。aptと言うコマンドを実行するとダウンロードとインストールを同時にやってくれる。これでサーバの設定は終了である。  
  クライアントPC  
  サーバに接続して実際に使用するクライアントはWINDOWSマシンである。サーバと接続できているかどうかを調べるためにIEのアドレスラインにサーバで設定したIPアドレスを入力してアパッチのテストページが見られることを確認する。確認できればこれで、サーバに接続できたことなる。もしエラーになったらアドレスが違っているかサーバの設定が違っているのでもう一度元に戻ってどこが違っているか調べてみる必要がある。成功すればクライアントとサーバの接続設定は終了したことになる。そして、第一段階は終了である。  
第2ステップ これから先はクライアントPCによる作業である。  
  まず必要なソフトを窓の杜Vectorからダウンロードする。この時それぞれのソフトのためのホルダを作成しておく。私の場合プログラミングのためにPHPスポットのPHP Editor を使用した。書いたコードをサーバにアップロードするための FFFTP 次にサーバを遠隔操作するための TERA TERMINAL である、これはwindowsに付録でついているtelenet より使いやすく またSSL対応している。これで、必要なソフトは全部そろったことになる。  
  PHPの確認  
  これから使用するための作業用ホルダを作っておくアパッチがPHPを使用できるかどうか確認してみるのである。たったの一行だけだがPHPの仕様の確認ができるphpinf()というコマンドをphpeditorにて書いてFFFTPにてサーバのユーザディレクトリーにアップロードする。そしてサーバのIPアドレス/~user/ と入力してIEにてPHPのインフォメーションが確認できればPHPが利用可能であるということである。  
  ACCESSからMySQLへ  
  ACCESSからの移植であるからそのテーブル構造をMySQLに移し変えなければならない。これは顧客テーブルでいえば基本的な住所とか名前、その他の項目の集合である。それらをエディターで書き写してtera terminalでサーバ上のMYSQLに送信する。これが、一番地道な作業である。きちっと一対一に対応させておかないと後でエラーとなる。なぜかと言うと今まで使用していたACCESSのデータを一旦テキストファイルとしてにエクスポートしてそれをMySQLに送信しなければならないからだ。ここで気をつけなくてはいけないのはMySQLはS-JISでなくてEUC-JPしか受け付けないからこのことは肝に銘じておかなければならない。もう一つMySQLの命令文とデータ等の中にHTMLのタグが含まれるとエラーになるのでそれらを含める場合はエスケープしておかなければならない。 あまり細かいことを書いてもきりがないのでそちらは手引書に譲ることにする。
  ここでとりあえず使用結果の報告をしてみる。  
  ユーザーインターフェイスはIEである。だから、どこかのホームページを開くような感覚なのだ。一連の動作概念はSQL文をサーバに送信してサーバで処理してその結果のみを返してくるという仕組みである。処理が早いのには驚かされる。クライアントを何台接続しようとも無料だからそのことも気にする必要はない。そしてインターネットに公開することができるから世界中のどこにいても仕事ができる。反面セキュアリティーには十分注意しなければならない。  
  苦労した記憶  
続く プログラミングは大きく分けて二つの部分からできている。PHPにるMySQLとの対話部分とHTMLタグによる表示の部分である。実は私はホームページのレイアウトをする時マクロメディアのドリームウエーバーを使用している。で1つのインターフェイスを作成する時にはまずドリームウエーバーにてテーブルなどを使用して大体の外観を作成する。そしておもむろにPHPを埋め込むのだ。PHPによるコードは自動的には育成できないからphpeditorにより一文字ずつ入力して作成するのである。PHPは一文字でも間違えると正しく動作しないか居眠りしてしまうのでその辺も注意が必要である。また、エラーが合った場合もほとんどの場合エラーメッセージも出さないので市販のソフトとはちょっと違う。その辺の注意も必要である。それからくどいようであるがキャラクターセットは必ずEUC-JPを使用する。エラーがなくうまく動作するようになるまでには相当のデバッグが必要であり時間もかかる。この辺の部分を乗り越えないとMySQLをうまいこと使用することができない。また、そのパターンを覚えてしまえば他の場面でも応用することができる。