[an error occurred while processing this directive]
■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

目次に戻る
1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目
第14日目:教えて('A`) 〜MySQLって何?(その1)〜

どうも、('A`)です。
今日はロードバランサー(その5)をお話したかったのですが、、、テスト用サーバの用意が
間に合いませんでした(涙
(再インストールの要請が立て込んでしまって・・・)
なので、鯖子J( 'ー`)し から振られたMySQLに関する質問&回答とか概要とかをお話します。

('A`):「で、どんな質問が来ているの?」
J( 'ー`)し:「えーとね、あ、これだ。」

    「・・・サーバ上で販売サイトを運営したいと考えています。私が
     持っているシステム(スクリプト)では、データをデータベースに
     登録して下さい、と書かれているのですが、よく判りません。
     データベースって何ですか?どうやって使えば良いのですか?
     教えて下さい。・・・」

('A`):「あー、こりゃ「データベースとは?」から説明しないと駄目かなあ・・・」
J( 'ー`)し:「じゃあ、説明お願いね♪」
('A`):「うー、えー、、、」

レンタルサーバを借りるお客様には色々な方がいらっしゃいます。
ものすごくサーバ(OSとかソフトウェアとか)詳しい人もいますが、あまり詳しくない
人もいます。(むしろそういう人が多いかと思います。)
('A`)も含めBIG-serverのメンバーはお客様に代わって煩わしい設定とかをサポートし、
快適にサーバを利用して頂く様日夜励んでいます。
で、先ほど紹介した様な問い合わせも頂いたりします。
今まで問い合わせ内容に応じて色々な回答をお客様に差し上げましたが、今回は
('A`)なりにデータベースに関して説明しようと思いました。
うまく説明できるかなあ。

・・・と思って実際に説明を書いていたら、とてもじゃないですが1日分として
まとまらなくなりました(泣
(本当はphpMyAdminの使い方だけ説明書けばよかったのかなあ・・・)
なので、今日はMySQLの大まかなところを解説して、明日はphpMyAdminを使っての
データベース構築について解説しますです。

【多くの人に利用されているMySQL】
皆さんの中には既にご存知の方もいらっしゃるかと思いますが、Bananaサーバ&
T-BananaサーバではMySQLをデータベースとして採用し、サービスをご提供しています。

このMySQLは世界で利用されているメジャーなDBMS(データベースマネージメントシステム)の
1つです。しかもフリーソフトなんです。
もう1つメジャーなDBMSとしてPostgreSQLが挙げられます。日本ではこちらの方が有名
だそうですが、世界的にはMySQLが古くから使われていて(初めて世に出たのは1995年)、
たくさんの人達が利用しています。いろんな文献や解説サイトなども多く出ています。
MySQLは今も改良され続け、2008年3月時点ではFreeBSD版では5.0.51が最新と
なっています。
また今年(2008年)1月には商用データベースOracleで有名なSun Microsystems 社が
買収したというニュースも流れました。
今後の機能開発や動向も含めて多くの人が注目しています。


【データベース‥‥実はテーブルが本体】
さて、BananaサーバやT-BananaサーバではFTPアカウントを1つ作成すると、
FTPアカウントと同じ名前でMySQLのユーザが作成されます。
(パスワードはFTPパスワードと同じ内容が設定されています。)
と同時にMySQLユーザ名と同じ名称でデータベースが作成されます。
BIG-Serverでは「1FTPにつき1データベース」でご提供しています。
(1つのFTPアカウントで複数のデータベースを提供する事はシステムの管理上
行なっておりません。)
詳しい事はBIG-serverのFAQページをご覧下さい。

ではMySQLはどの様に構成されているのでしょうか?
Bananaサーバ上でのMySQLのディレクトリ構成は以下の様になっています。

/var/db/mysql
  |
  -----ibdata1
  |   (InnoDB本体)
  |
  -----ib_logfile0
  |    ib_logfile1
  |   (InnoDBのログファイル)
  |
  -----mysql
  |   (MySQLの管理データベース)
  |
  -----各ユーザのデータベース
      |
      --------(テーブル名).fmr
      |
      --------(テーブル名).MYD
      |
      --------(テーブル名).MYI

大きく分けると3つの部分から成り立っています。
  1) 各ユーザのデータベース部分
  2) MySQLシステムを管理する為のデータベース部分
  3) トランザクション型データベース部分

まず、1) 各ユーザのデータベース部分について解説します。
ここのディレクトリ内には、以下の3種類のファイル(テーブル)が存在します。
(これらのファイル(テーブル)が集まってデータベースとして機能します。)
参考書で例えると、参考書という本そのものが「データベース」、各章が
「テーブル」、目次が「インデックス」とするとなんとなく感じが掴める
かと思います。

・ .frmファイル
 テーブル構造(項目やデータ型など)のデータが格納される
・.MYDファイル
 テーブルのレコードデータ(実データ)が格納される
・.MYIファイル:
 テーブルに対して作成された複数のインデックスデータが格納される

次に、2) MySQLシステムを管理する為のデータベース部分について解説します。
MySQLではユーザに関する情報(ユーザ名、パスワード、割り当てられている
データベースとか)や各ユーザの権限(テーブルの追加、更新、削除ができるか
禁止されているか)、接続に関する情報(サーバ内の該当ユーザからしか接続を
許可しない、とか、サーバ外部からの接続を許可する、とか)を特別なデータ
ベース(mysqlというディレクトリ)に格納しています。
このデータベースはMySQLのシステム管理・制御で使用する重要なデータなので
一般ユーザでは操作できない様になっています。
このmysqlというディレクトリを「特権データベース」という場合もあります。

最後に、3) トランザクション型データベース部分について解説します。
実はこの部分は('A`)が苦手な部分(というか、実際に使った事が無いです・・・)
なので、あくまでも概要だけ説明します。
よく銀行のシステムが引き合いに出されるのですが、「ある口座から別の口座に
いくらいくら振り込む」という処理を行なう場合、データベースの処理としては
・振込元の口座データからいくらいくら減らす
・振込先の口座データからいくらいくら加える
という2つの処理に分かれます。
しかしこれらの処理は2つ合わせて初めて意味のある処理となるので、これらを
「1つのまとまった形で」処理する必要があります。
この様な「1つのまとまった処理」を「トランザクション」といいます。
MySQLでは4.0.x系からこのトランザクション処理に対応したデータベースを
サポートしています。それが「InnoDB」と呼ばれるものです。
そして重要なのはトランザクションの処理を行なう場合、「全部OK」か
「全部NG」かのいずれかしか許されない、という事です。
つまり仮に片方の処理がNGとなった場合には、何らかの方法で処理を
「振りだし」に戻さなくてはいけません。
MySQLではトランザクション処理の際に「どこまで処理したのか」をログ
として記録しています。(ib_logfileというファイルに記録されます。)
そして処理がNGとなった場合にはここの記録から、今まで処理していた
内容を把握し、元の状態に更新し直す(これをロールバックといいます)
事を行ないます。
Banana&T-BananaサーバではMySQLインストール時に自動的にInnoDB関連の
ファイルが作成されますが、実際に使用する事はできません。
(有効化されていない、という事です。)
InnoDBを有効化するにはMySQLの設定ファイル(/etc/my.cnf)を作成し、
その中でInnoDBの細かい設定を記述する必要があります。
またそれだけでなく、サーバのディスクスペースとパーティション(区画)
の割り当てなどサーバ全体の構成も調整しなければなりません。
もし自宅でサーバを構築しトランザクション型のデータベースを
作成しようと考えている方がいらっしゃるなら、以上の点に注意して
サーバ構築を行なって下さい。


【MySQLのインストール‥‥バージョンと文字コードに気をつけて】
もし自宅でサーバを構築し、OSがFreeBSDだったら、MySQLのインストールは
  ・ソースからのコンパイル&インストール
  ・Portsからのインストール(pkg_addコマンド使用)
の2つの方法があります。
Banana&T-Bananaサーバでは後者の方法でインストールしています。

pkg_addコマンドでMySQLをインストールした場合には、サーバの
起動スクリプトは /usr/local/etc/rc.d に格納されます。
(このディレクトリはOS起動時に参照され、そこに設置されている
スクリプトが実行可能な状態である場合、自動的に起動されます。)

インストールできるMySQLのバージョンは 4.0.x系、4.1.x系、5.0.x系が
ありますが、文字コードの取り扱いが4.0.x系と他のバージョンで大きく
異なりますので、注意が必要です。
ちなみにpkg_addコマンドでインストールした場合、文字コードはlatin1
がデフォルトとなります。

・4.0.x系では文字コード(charsets)は.confファイルで追加できる
 (/usr/local/share/mysql/charsets 内に各文字コードのコードデータが
  .conf ファイルの形で存在します。)
  sjis、ujisはデフォルトでは作られませんが、コードデータを作って
  設置すれば利用可能です。
  但しunicode(utf-8)には対応していません。
・4.1.x & 5.0.x では文字コードはバイナリ(xml形式)で生成される
 unicode(utf-8)はサポートされているが、sjisやujisを使う場合には
 ソースからのコンパイル&インストールでconfigureパラメータで
 使用する文字コード(sjisとかujisとか)を明示する必要があります。


J( 'ー`)し:「説明はできたー?」
('A`):「えーと、文章が長くなったので、続きは明日書くから・・・」
J( 'ー`)し:「あ、そう。じゃあ、大急ぎで書いてね。」
('A`):「は、はい・・・」

今日はデータベースの具体的な操作方法まで書けなかった・・・
明日はphpMyAdminを使ってMySQLデータベースへのテーブル作成とかデータ追加とかの
方法について説明します。

それでは、また。

13日目に戻る。   15日目に続く。

目次に戻る
1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目

いま一番お得なページ! 解析
[an error occurred while processing this directive]