無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 2 MySQL のインストールと更新 :: 2.3 Windows に MySQL をインストールする :: 2.3.15 Windows 上の MySQL と Unix 上の MySQL の比較
« 2.3.14 Windows を使用した MySQL をアップグレードする

2.4 Linux に MySQL をインストールする »
Section Navigation      [Toggle]
  • 2.3 Windows に MySQL をインストールする
  • 2.3.1 インストール用パッケージの選択
  • 2.3.2 自動インストーラで MySQL をインストールする
  • 2.3.3 MySQL インストール ウイザードを使用する
  • 2.3.4 設定ウイザードを使用する
  • 2.3.5 非インストール Zip アーカイブからのインストール
  • 2.3.6 インストール アーカイブを取り出す
  • 2.3.7 オプション ファイルの作成
  • 2.3.8 MySQL サーバ タイプの選択
  • 2.3.9 サーバを最初に起動する
  • 2.3.10 MySQL の Windows のコマンドラインからの起動
  • 2.3.11 Windows のサービスとして MySQL を起動する
  • 2.3.12 MySQL インストールのテスト
  • 2.3.13 Windows への MySQL インストールにおけるトラブルシューティング
  • 2.3.14 Windows を使用した MySQL をアップグレードする
  • 2.3.15 Windows 上の MySQL と Unix 上の MySQL の比較

2.3.15. Windows 上の MySQL と Unix 上の MySQL の比較

Windows を使用した MySQL は実証済みで安定しています。Windows バージョンの MySQL は以下の例外を除いて Unix バージョンの MySQL と同じです。

  • Windows 95 およびスレッド

    Windows 95 は各スレッドの作成毎におよそ 200 バイトのメモリを消費します。MySQL の各接続毎にスレッドが作成されます。ですからサーバが多くの接続を扱う場合には Windows 95 では mysqld をあまり長時間使用しないようにします。Windows の新しいバージョンではこのバグによる影響はありません。

  • ポート数の制限

    Windows システムにはクライアント接続のポートがおよそ 4,000 あり、一つのポート接続が閉じるとそのポートを再度利用できるまで 2~4 分かかります。クライアントのサーバへに接続/切断頻度が高い環境では、すべての利用できるポートは閉じたポートが再度利用できるようになる前に使用してしまうことができます。このようになると、MySQL サーバはそれが動作中であっても反応していないようにみえます。ポートはマシンで実行されている他のアプリケーションでも同様に使用できます。その際、MySQL に利用できるポート数は少なくなります。

    この問題に関する詳細は、http://support.microsoft.com/default.aspx?scid=kb;en-us;196271を参照してください。

  • 同時読み込み

    MySQL は INSERT と SELECT を混合する際 pread() および pwrite() のシステム コールに依存しています。現在、弊社では pread() および pwrite() をエミュレートするために mutex を使用しています。弊社では将来的に高速化を図るため readfile()/writefile() インターフェースを NT、2000、および XP に使用できるようにしてファイル レベルのインターフェースを仮想インターフェースに置き換える予定です。現在は MySQL 5.1 が使用できるオープン ファイルは 2,048 に制限されており、Unix に相当する同時スレッドを Windows NT、2000、XP、および 2003 では使用できないということを意味しています。

  • ブロック読み込み

    MySQL は各接続にブロック読み込みを使用しています。それは名前付きパイプ接続が有効になった場合以下が想定されます。

    • 接続は、Unix バージョンの MySQL とは異なり、8 時間後でも自動的に切断されない。

    • 接続がハングした場合、MySQL を停止せずにハングを解消できない。

    • mysqladmin kill は休眠中の接続には機能しない。

    • mysqladmin shutdown は休眠接続がある限るシャットダウンできない。

    弊社でこの問題を将来的に解決する予定です。

  • ALTER TABLE

    ALTER TABLE ステートメントを実行中は、テーブルは他のスレッドが使用できないようにロックされます。これは Windows の場合、使用中のファイルは別のスレッドで削除できないという事実に関連しています。将来的にはこの問題を解決する方法を見つける予定でます。

  • DROP TABLE

    MERGE ハンドラーがテーブルのマッピングを上部層の MySQL に非表示にしているために、MERGE テーブルで使用されている DROP TABLE は Windows では機能しません。Windowsでは開いているファイルは削除できないようになっているため、まずすべての MERGE テーブル (FLUSH TABLES で) をフラッシュするか、あるいはテーブルを削除する前にMERGE テーブルを削除する必要があります。

  • DATA DIRECTORY および INDEX DIRECTORY

    CREATE TABLE の DATA DIRECTORY オプションと INDEX DIRECTORY オプションは Windows がシンボリック リンクをサポートしていないので Windows では無視されます。これらのオプションはまた非機能 realpath() コールのシステムでは無視されます。

  • DROP DATABASE

    スレッドで使用中のデータベースは削除できません。

  • タスク マネージャで MySQL をシャットダウンする

    Windows 95 では、タスク マネージャあるいはシャットダウン ユーティリティで MySQL をシャットダウンできません。それを停止するには mysqladmin shutdown を使用します。

  • ケース インセンシティブ ネーム

    ファイル名は Windows ではケース センシティブではありません。ですから MySQL データベースおよびテーブル名も Windows ではケース センシティブではありません。唯一の制限はデータベースおよびテーブル名は所定のステートメントでは同じケースを使用して指定される必要があるということだけです。項8.2.2. 「識別子の大文字/小文字区別」 参照。

  • ‘\’ パス名区切り文字

    Winndows ではパス名のコンポーネントは ‘\’ 文字で区切られます。それは MySQL でもエスケープ文字です。LOAD DATA INFILE あるいは SELECT...INTO OUTFILE を使用している場合、Unix スタイルのファイル名を ‘/’ 文字と一緒に使用します。

    mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;
    mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
    

    また、‘\’ を 2 本にする必要があります。

    mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;
    mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
    
  • パイプに関する問題

    Pipes は Windows のコマンドライン プロンプトでは信頼性に欠けます。パイプに ^Z / CHAR(24) が含まれている場合、Windows はファイルの最後だと勘違いしてプログラムを中止します。

    これは以下のようにバイナリのログを適用する際の主な問題です。

    C:\> mysqlbinlog binary_log_file | mysql --user=root
    

    ログに関する問題が発生しその問題が ^Z / CHAR(24) 文字によるものだと考えられる場合は、以下の回避法が使用できます。

    C:\> mysqlbinlog binary_log_file --result-file=/tmp/bin.sql
    C:\> mysql --user=root --execute "source /tmp/bin.sql"
    

    後者のコマンドはバイナリのデータを含む SQL ファイルを確実に読み込むためにも使用できます。

  • Access denied for user エラー

    MySQL がホスト名の問題を適切に解決できない場合、同じマシンで動作しているサーバに接続するために MySQL クライアントのプログラムを実行しようとした時に以下のエラーが発生する場合があります。

    Access denied for user 'some_user'@'unknown'
    to database 'mysql'
    

    この問題を解決するためには、以下の情報を含むファイル名 \windows\hosts を作成する必要があります。

    127.0.0.1       localhost
    

ここに皆さんから改善に向けたご協力を頂けるであろう Windows を使用した MySQL の周知の問題を示します。

  • Microsoft から提供された高速のスレッド セーフな増分/減分メソッドを使用するためにマクロを追加します。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.