PHPの仕様

 PHPはCommon Gateway Interface(コモン・ゲートウェイ・インターフェース、CGI)と呼ばれるウェブサーバ上でプログラムを動作させるための仕組みを採用しています。このような言語をサーバーサイドプログラミング言語といいます。具体的にWebブラウザからの処理要求を受け、その処理をウェブサーバ側で処理をし結果をHTML形式へと変換したのちにそれを要求もとのWebブラウザへと返します。サーバーサイドプログラミング言語の利点としてはサーバー側で処理をするのでさまざまな異なる種類のWebブラウザから処理要求を出しても統一された処理結果が返ってくる点です。これに対し、JavaScriptなどのクライアントサイドプログラミング言語ではブラウザで処理を行うためブラウザのバージョンが古かったり開発時に想定していたブラウザと異なるものを使っていると出力時のレイアウトが崩れたり、最悪の場合動作しないなどの問題が起こります。

 近年では、Webサーバのプロセスとしてインタプリタを常駐させておくことにより、CGIからプログラムを呼び出すオーバヘッドを減らし、パフォーマンスを向上させたJava Servletやmod_perl、mod_php、FastCGIなどの実装も出現しており従来よりも高速に処理を完了させることができます。

 また、処理ロジック、レイアウトの出力、ユーザからの入力といったいわゆるMVCモデル(モデル・ビュー・コントローラ)を使用することができるテンプレートエンジンのSmartyなどをはじめ早く正確に、また見やすいコードを記述でき保守に役立つフレームワークと呼ばれるものがPHPでは利用可能になっています。

TOP

Apacheのインストール

 WindowsのうえにWebサーバーアプリとしてApache, データーベースアプリとしてMySQL, 開発言語としてPHPを構築していきます。これらの環境を総称してWAMP(ザンプ)と呼ばれます。PHPをインストールするにはまず、Webサーバー用ソフトウェアをインストールする必要があります。今回は代表的なWebサーバー用ソフトウェアとしてApache(アパッチ)をインストールしてみます。Windows用パッケージの取得として、Apacheを取得するため以下のサイトにアクセスします。http://www.apache.jp/misc/download.html 次にリンク先をたどりbinariesフォルダ以下のwin32フォルダを開きます。


 apache_2.2.11-win32-x86-openssl-0.9.8i.Msi  を選択しダウンロードしインストールします。


 Nextをクリック


 I accept the terms in the license agreement をチェックしNext


 Nextをクリック


・Network Domain  サーバーのドメインを指定します。
 ここでは「localhost」とします。

・Server Name
 サーバー名を指定します。
 ここでは「localhost」とします。

・Administrator's Email Address
 自分のメールアドレスを入力します。


 Nextをクリック


 Installをクリック


 無事インストールが完了しました。この状態ですでにアパッチは起動しています。


 ちなみにアパッチのストップ、リセット、スタートはメニューから選択できます。また、アパッチでは設定ファイルを書き換えたそのつどにリスタートしないと設定が反映されませんのでこの点は必ず覚えておきましょう。設定ファイルの変更などは後ほど。


 起動するとタスクバーに上記のようなアイコンが表示されます。ここからも再起動などの設定が可能です。再起動はRestartもしくは、StopをおしてあらためてStartを押します。




 Apacheが起動しているのか確かめてみましょう。
 ローカルホストに設定した、http://localhost/ または、http://127.0.0.1/ と打ってみて上記のような画面が表示されればApacheのインストールは完了です。

TOP

PHPのインストール

 PHPはApache同様オープンソースであり誰でも自由に入手することができます。 まずは、http://www.php.net/downloads.php にアクセスします。

 Windows Binaries の PHP 5.2.9-1 zip package をダウンロードします。
ダウンロードサーバを聞かれるので日本を選択してファイルを落とします。
解凍したらフォルダごとCドライブの直下などわかりやすいところに配置します。(以降Cドライブ直下が前提)

そうしたら、解凍されたファイルの中から「php5ts.dll」「libmysql.dll」をWindowsのシステムフォルダである「C:/Windows/system32」(Windows NT の場合は「C:/Winnt/system32」) にコピーします。また、同じく「php.Ini-dist」を、「C:/Windows」(Windows NT の場合は「C:/Winnt/system32」) にコピーして、「php.ini」に名前を変更します。

 以降、PHPの設定は、「C:/Windows/system32」配下の「php.ini」をテキストエディタで開いて設定を行います。また、設定後はアパッチの再起動をしてあらためて設定変更が反映されるので、PHPの設定を行った際はアパッチの再起動をしてください。

TOP

PHPの環境設定

 ここでは WindowsOS全般における、PHPのインストールの仕方について説明していきます。また、インストール後の設定も合わせて行っていきますので、Windowsユーザには、重要な設定となります。しっかりと設定してみましょう。 最新の PHPは、本家サイトから、実行環境に合わせて、PHPのファイルをダウンロードします。あらかじめ、Cドライブ直下「c:\php」という具合に、「php」という名のフォルダを作成し、その中にダウンロードしてください。 PHPの配布パッケージには、「ZIP Package」「Installer」の2種類がありますが、これら2つに含まれる内容はそれぞれ違います。ZIP Packageには、「CGI(Common Gateway Interface)版」「SAPI(Server API)版」とが含まれているのに対して、Installerパッケージには「CGI版」しか含まれていません。いずれを利用してもPHPの動作そのものは同じですが、SAPI版Webサーバと同一のプロセスで動作するのに対して、CGI版ではPHPがサーバーからは独立したプロセスで動作します。このため、CGI版よりもSAPI版の方が高い処理パフォーマンスを実現できるようです。特別な理由がない限り、SAPI版PHPを含むZIP Packageを利用することを強くお勧めします。解凍して展開すれば、基本的にはインストールしたことになります。ですが、このままでは、PHPは動作しません。展開されたファイルの中から幾つかをコピーしたり、設定の書き直しをしなくてはなりません。

 まずはじめに、解凍したファイルの中から指定したフォルダにコピーしなくてはなりません。
 phpフォルダ内から、「php5ts.dll」という拡張ファイルを、windowsフォルダ内のsystem32(WindowsXP/2003)にコピーします。 → 「c:\windows\system32」 Windows95/98/ME の場合は、「c:\windows\system」フォルダにコピーしてください。 WindowsNT/2000の場合は、「c:\winnt\system32」です。次に、同じく、phpフォルダ内にある「php.ini-dist」というファイルをコピーして、「php.ini」という名前に変更し、このiniファイルをwindowsフォルダ(NT/2000)では、「c:\winnt」)に移動します(先ほどのシステムディレクトリとは異なる)。windowsディレクトリは、システムディレクトリ同様、使用しているwindowsのバージョンによって異なるので注意してください。ファイル移動の次は、「php.ini」に書いてある内容を変更しなければなりません。このファイルの書き直しは慎重に行わなければなりません。万が一を考えて、あらかじめ別の任意のフォルダにコピーしておくことをお勧めします。用意ができたら、「メモ帳」で 「php.ini」ファイルを開きます。

;;;;;;;;;;;
; WARNING ;
;;;;;;;;;;;
; This is the default settings file for new PHP installations.
; By default, PHP installs itself with a configuration suitable for
; development purposes, and *NOT* for production purposes.
; For several security-oriented considerations that should be taken
; before going online with your site, please consult php.ini-recommended
; and http://php.net/manual/en/security.php.


;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;
; This file controls many aspects of PHP's behavior.  In order for PHP to
; read it, it must be named 'php.ini'.  PHP looks for it in the current
; working directory, in the path designated by the environment variable
; PHPRC, and in the path that was defined in compile time (in that order).
; Under Windows, the compile-time path is the Windows directory.  The
; path in which the php.ini file is looked for can be overridden using
; the -c argument in command line mode.
;
         〜 以下省略 〜

PHPでは、行の最初にセミコロン「;」をつけると、その行がコメントとして解釈されます。windows環境で利用するために、このファイルに書かれている内容から、必要な行のセミコロンを外したり、追加をする必要があります。最初に、「Paths and Directories」と記述されているブロックを探して、以下のようにincludeファイルへのパスを有効にします。windowsユーザは必須の項目です。
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;c:\php\PEAR;"外部ファイルの検索先の指定

TOP

Apacheドキュメント・ルートの指定

 次に、上記リストのすぐ下にある部分を変更します。以下の部分を追記してください。

; The root of the PHP pages, used only if nonempty.
; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
; if you are running php as a CGI under any web server (other than IIS)
; see documentation for security issues.  The alternate is to use the
; cgi.force_redirect configuration below
doc_root ="C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"  ←ドキュメントルート指定

TOP

拡張モジュールのディレクトリを指定

 拡張モジュールのディレクトリを指定します。上記リストのすぐ下にある部分を、以下のように追記してください。

; Directory in which the loadable extensions (modules) reside.
extension_dir = "c:\php\ext"  拡張モジュール「php_*.dll」を含むフォルダ

TOP

文字列モジュールと GDモジュールの設定

 マルチバイト文字列モジュールと、画像を操作するための GDモジュール部分を変更します。「Dynamic Extensions」というブロックを探して、以下のように変更します。

;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension

          〜 中略 〜


extension=php_mbstring.dll  ← マルチバイト関数を有効化
extension=php_sqlite.dll    ← SQLite関数を有効化

          〜 中略 〜

output_buffering = On       ← バッファリング処理の有効化
output_handler = mb_output_handler     ← 出力ハンドラの設定
default_charset = "Shift_JIS"          ← 出力文字コードの設定

          〜 中略 〜

mbstring.language = Japanese           ← デフォルトの言語
mbstring.internal_encoding = EUC-JP  ← PHP内部の文字コード
mbstring.http_input = auto             ← HTTP入力の文字コード
mbstring.http_output = SJIS            ← HTTP出力の文字コード
mbstring.encoding_translation = On     ← 入力文字コードの自動変換を有効化
mbstring.detect_order = auto           ← 文字コード検出の優先順
mbstring.substitute_character = auto   ← 代替文字
mbstring.script_encoding=EUC-JP        ← スクリプトで使用する文字コード
これで php.iniファイルの設定変更が終わりました。「上書き保存」でファイルを保存して閉じます。

TOP

httpd.conf ファイルの設定

 windows上にインストールした ApachePHPを動かすために、Apacheにある設定ファイルを幾つか変更しなくてはなりません。少し大変ですが落ち着い、て正確にしっかりと設定してください。これが上手くいかないと PHPを動かすことができません。 前もって、バックアップを作成することをお勧めします。Cドライブ上の「Apache Software Foundation」というフォルダから、Apache2.2 → htdocs とフォルダを辿って「httpd.conf」ファイルを選択します。(c:\Apache group\Apache2\conf\httpd.conf) このファイルも「メモ帳」で開いてください。このように記載されているはずです。

#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See  for detailed information.
# In particular, see 
# 
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.  
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path.  If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "C:/Program Files/Apache Software Foundation/Apache2.2" will be interpreted by the
# server as "C:/Program Files/Apache Software Foundation/Apache2.2/logs/foo.log".
#
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which Apache.exe is located
# will be used by default.  It is recommended that you always supply
# an explicit drive letter in absolute paths, however, to avoid
# confusion.
#

                〜 以下省略 〜

TOP

実行ファイルの変更

PHPの実行ファイルを設定します。これが働かないと、windowsでは動いてくれません。「Synamic Shared Object (DSO) Suppor」と書いてある行を探し出します。それを以下のように追記します。先頭にハッシュマーク「#」は要りません。

# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a
# DSO you have to place corresponding `LoadModule' lines at this 
# location so the

          〜 中略 〜

# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so

          〜 中略 〜

#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
AddDefaultCharset none
LoadModule php5_module C:/php/php5apache2_2.dll
AddType application/x-httpd-php .php

TOP

トップページでも PHPが使えるように設定する

 サイトのトップページや、各ディレクトリの index文書も PHPが利用できるように、ディレクトリ・インデックス「DirectoryIndex」を追記します。以下の部分を探して変更してください。

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
< IfModule dir_module>
    DirectoryIndex index.html menu.html   ←この部分を追記する
</IfModule>

TOP

文字符号コードの変更

 Apacheのデフォルトの文字コードは、ISO-8859-1になっています。ここでは日本語を使うので、Shift_Jis、EUC-JP などに変更しておく必要があります。「AddDefaultCharset」を以下のように変更します。探すのが大変ですが、1行ずつじっくりとスクロールして探してください。

#
# Specify a default charset for all pages sent out. This is
# always a good idea and opens the door for future internationalisation
# of your web site, should you ever want it. Specifying it as
# a default does little harm; as the standard dictates that a page
# is in iso-8859-1 (latin1) unless specified otherwise i.e. you
# are merely stating the obvious. There are also some security
# reasons in BR /owsers, related to javascript and URL parsing
# which encourage you to always set a default char set.
#
AddDefaultCharset shift_jisISO-8859-1 を Shift_Jis に変更

TOP

言語コードの優先順位

 Apacheのデフォルトの言語コードの優先順位は、en (英語) が一番になっており、日本語ja はずいぶん後ろにあります。これをカット&ペーストで順位を入れ替えます。

# LanguagePriority allows you to give precedence to some languages
# in case of a tie during content negotiation.
#
# Just list the languages in decreasing order of preference. We have
# more or less alphabetized them here. You probably want to change this.
#
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko 
                  ↑ このように ja を一番先頭に移動する

TOP

MIMEタイプの追加

 最後に、Apacheサーバが PHPを解釈できるように、MIMEタイプを追加します。ファイルの最後の方で、以下のように追記してください。

# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
#AddType application/x-tar .tgz
Addtype image/x-icon .ico
Addtype application/x-httpd-php .php     ← この1行を追記する
Addtype application/x-httpd-php-source .phps ← この1行も追記する
これで、Apacheの、httpd.confファイルの設定が終わりました。ご苦労様です。さっそく「上書き保存」でファイルを保存します。コンピュータを再起動することで、windows上でPHPを動作させることができます。

TOP

PHP動作の確認

 Apacheの再起動後、実際に PHPが動作するかを確認します。非常に簡単なスクリプトで、PHPの情報を得ることができますので、「メモ帳」から以下のようにタイプしてください。

<?php
   phpinfo();
?>
簡単なのですぐに作れるでしょう。これを「phpinfo.php」というように、ファイル名と拡張子をつけて、Apache Groupフォルダの Apach2フォルダ内にある htdocsフォルダに保存します。保存後、いつも利用している Webブラウザを起動して、そのURL欄に、「http://localhost/phpinfo.php」とタイプして、Enterキーを押してください。以下のような画面が出れば、PHPのインストールが成功した証拠になります。


TOP

MySQLのインストール

 ApacheとPHPのインストールと設定が終わったのでいよいよMySQLのインストールへと進みます。ダウンロードページ( http://dev.mysql.com/downloads/ )からMySQL Community Server を選択します。Windows MSI Installer (x86) を選択しダウンロードします。


 ユーザー登録をすすめる画面がでてきますが、今回はユーザ登録しないのでマーキングされた No thanks, just take me to the downloads! をクリック。


 ダウンロードするサーバをたずねてくるのでここから一番近いジャパンの国旗を選びます。HTTPとFTPのリンクがありますがどちらでもかまいませんのでクリック。


 ダウンロードしたファイルを実行。Nextをクリック


 今回は、Typicalを選択してNextをクリック
・[Typical]標準的な機能に絞ったインストール
・[Complete]すべての機能をインストール
・[Custom]インストールするものを選択する場合に使用


 installをクリック


 Nextをクリック


 Nextをクリック


 Configure the MySQL Server now のチェックボックスがチェックされていることを確認してFinishをクリック。これにより環境設定へとすすみます。

TOP

MySQLの環境設定

 インストール後の環境設定を行います。

 Nextをクリック


 インスタンスの設定方法を選択します。設定方法には詳細設定と標準設定があります。ここでは詳細設定を行うので、Detailed Configuraiton にチェックをいれNextをクリック


 ここではインストールするサーバーのタイプを選択します。ここではDeveloper Machine を選択。選択肢の説明は下記のとおり。

・Developer Machine

MySQLを開発用のマシンにインストールすることを想定しています。システムリソースの使用が最小になるように設定されます。
・Server Machine
MySQLをWebやFTPなどのサービスが稼動するマシンにインストールすることを想定しています。
・Dedicated MySQL Server Machine
MySQLのみが稼動するサーバにインストールすることを想定しています。システムリソースを最大限に利用する設定になります。


 データベースタイプを選択します。今回は Multifunctional Database を選択します。他の選択肢の説明は下記のとおり。

・Multifunctional Database
InnoDBとMyISAMを同じような頻度で使用する場合に選びます。
・Transactional Database Only
MyISAMも使用するが、ほとんどの場合がInnoDBという場合に選びます。
・Non-Transactional Database Only
InnoDBテーブルをまったく使わない場合に選びます。InnoDBが作成できない設定になります。
 InnoDB(イノディービィー)
InnoDB は、テーブルスペース内に複数のテーブルやインデックスを格納するデータ構造を持ち、トランザクション機能をサポートしています。MySQL における、コミット、ロールバック、クラッシュリカバリの各機能を備えたトランザクションセーフ(ACID 準拠)のストレージエンジンです。InnoDB は、行レベルでロックを行い、SELECT ステートメントで Oracle 式の非ロックの読み取り一貫性(consistent read)を実現します。これらの機能によって、マルチユーザでの並行性とパフォーマンスが向上します。
 MyISAM(マイアイサム)
MyISAMは、MySQLの基本的なテーブル型です。テーブル単位のファイルによるデータ構造を持ち、トランザクション機能をサポートしていません。


 InnoDBのデータファイル保存場所を選びます。なるべく空き容量の大きいドライブを選択してください。


 同時接続数を選択します。下記を参照に選択してください。今回は、Decision Support を選択して話を続けます。
・Decision Support (DSS)/OLAP
同時接続数が少ない場合に選びます。 最大100、平均で20の同時接続を想定しています。
・nline Transaction Processing (OLTP)
同時接続数が多い場合に選びます。最大500の同時接続数を想定しています。
・unual Setting
同時接続数を手動で設定するオプションです。


 ネットワークに関するオプションです。通常はデフォルトのままで構いませんが、 使用するポート番号を変更できます。


 MySQLで使用する言語を選択します。以下を最小して選択したあと、Nextをクリックしてください。日本語を扱う場合は必ず Manual Selected Default Character Set / Collation を選択してsjis もしくは ujis を選択します。今回は sjis を設定します。
・Standard Character Set
Latin1がデフォルトになります。
・Best Support For Multilingualism
UTF8がデフォルトとなります。
・Manual Selected Default Character Set / Collation
日本語をデフォルトとする場合、このオプションを選択し、さらに、Shift-JIS(SJIS)の場合はsjis、EUCの場合はujisを設定します。


 Windowsのサービスへの追加と環境変数へのパスの追加を行います。デフォルトでは、MySQLという名前でWindowsのサービスとして登録されますが、サービス名をドロップダウンリストから選ぶこともできます。Lanch the MySQL Server automaticallyにチェックが入っているとMySQLのサービスがWindows起動時に自動的に開始されるようになります。MySQLのサービスをそれほど頻繁に使わない場合は、このチェックを外しておいてください。その場合、コントロールパネルにある管理ツールのサービスからMySQLを開始できます。Include Bin Directory in Windows PATHにチェックを入れるとmysql.exeまでのパスが環境変数PATHに登録されるので、コマンドラインで移動したり、パスを記述したりしなくてもMySQLが起動できるようになります。ここでは全てにチェックを入れて次へ進みます。


 rootのパスワードを設定します。稼動後に変更することもできますが、変更時に現在のパスワードの入力が求められます。今回は「passwd」というパスにします。また、セキュリティ上の配慮から、ネットワーク経由の接続ではrootが使えないようになっていますが、rootを使いたいという場合はEnable root access from remote machines にチェックを入れてください。さらに、Create An Anonymous Account にチェックを入れると、匿名ユーザの接続を許可することになり、セキュリティが下がります。


 最終的な確認画面が表示されます。Executeをクリックすると実際に設定が反映され、サービスが起動します。ここでエラーが発生するときは、以前のバージョンのサービスが残っているなどの原因が考えられます。その場合は、再度確認のうえ、やりなおしてみてください。


TOP

MySQLサービスの設定

 ウィザードが終了した時点で、インストール先(ここでは、C:/ProgramFiles/MySQL/MySQL Server 5.1 ) にmy.ini設定ファイルが作成されます。設定を変更したいときは、このmy.iniファイルを編集した後で、MySQLサービスの停止、起動を行います。この時点で、my.iniファイルの一番最後に以下を追加して、さらに追加したmy.iniファイルをWINDIR(XPの場合はC:/Windows)へコピーしてください。

    default-character-set=sjis
 この時点で、my.iniファイルの一番最後に以下を追加して、さらに追加したmy.iniファイルをWINDIR(XPの場合はC:/Windows)へコピーしてください。


 コントロールパネルから管理ツールを開いたところ。このなかのサービスを起動します。

 MySQLが起動していることがわかります。基本的にはここから起動状態の確認、サービスの停止、再起動をします。アパッチもここでコントロールできます。

TOP

MySQL起動終了

 それでは、いよいよMySQLを起動させてみたいと思います。起動方法は大きくふたつあります。メニューからとコマンドプロンプトからの起動です。


 メニューからは上記のとおり簡単です。


 もうひとつはコマンドプロンプトからの起動方法。スタートからファイル名を指定して実行を選ぶか、ウィンドウズキー+Rででてきますので cmd と入力。


    mysql -u ユーザ名 -p
と入力します。これはリナックス版のMySQLを起動するときと共通なので本来はこちらから起動する癖をつけておきましょう。ユーザ名がrootなのは、いまのところまだrootしか作っていないのでそのためです。


 パスワードを求められるのでpasswdと打ちエンターキー


起動しました。終了するときはexitかquitと打ち込みます。


・Windowsのコマンドプロンプトからサービスの起動

 ここでは、Windowsで登録したサービス名が「MySQL」であるとします。起動するには、コントロールパネルの「管理ツール」→「サービス」に登録されている「MySQL」を右クリックして「開始」を選ぶか、あるいは、コマンドプロンプトで次のように入力します。
    C:\Program Files\MySQL\MySQL Server 5.1\bin>net start mysql
    MySQL サービスを開始します。
    MySQL サービスは正常に開始されました。
 終了するには、コントロールパネルの「管理ツール」→「サービス」に登録されている「MySQL」を右クリックして「停止」を選択するか、あるいは、コマンドプロンプトで次のように入力します。
    C:\Program Files\MySQL\MySQL Server 5.1\bin>net stop mysql
    MySQL サービスを停止中です。
    MySQL サービスは正常に停止されました。
 あるいは、以下のコマンドでも終了できます。
    C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p shutdown
    Enter password: ****
 このコマンドは、Windowsではバージョンや設定によって使えないこともあるようです。

TOP

mysqldオプション

 MySQLサーバ起動時のオプションの一部を紹介します。「mysqld_safe」(Linux)や「mysqld-nt」(Windows)の後にスペースを入れて、以下のオプションを続けます(オペレーティングシステムによっては一部使えないものもあります)

オプション説明
--ansi MySQL構文ではなく、SQL99構文を使用
-h, --datadir=パス データディレクトリのパス
--default-character-set=キャラクタセット名 デフォルトのキャラクタセットを設定
--default-table-type=テーブル名 デフォルトのテーブル型を設定
--flush SQLコマンド実行後、ディスクへの変更をすべてフラッシュ。MySQLがクラッシュする場合に行ってみるとよいでしょう
-?, --help ショートヘルプを表示。「--verbose --help」とすると長いヘルプが表示
-L, --language=言語名 クライアントエラーメッセージに使用する言語。日本語の場合、「--language=/usr/local/share/japanese」(パスは異なる場合もあります)
-l, --log [=ファイル名] 接続とクエリをログファイルに記録します
--log-bin [=ファイル名] データを変更するクエリをすべてログファイルに記録。バックアップおよびレプリケーション用に使用します
--log-bin-index [=ファイル名] バイナリログファイル名のインデクスファイル
--log-error [=ファイル名] エラーメッセージおよびスタートアップメッセージを指定のログファイルに記録
--log-long-format 追加情報をログファイルに記録(有効化されているすべてのログ)
--log-short-format ログファイル(有効化されているすべてのログ)へ書き出される情報が少なくなります
--log-slow-queries [=ファイル名] 実行時間がグローバル変数long_query_timeで指定された秒を超えたクエリをすべてログファイルに記録
--skip-innodb InnoDBテーブルの使用を無効にします。メモリとディスク領域の節約および演算処理のスピードアップに役立ちます。テーブル作成時に「ENGINE=InnoDB」を指定してもMyISAMテーブルが作成されます
--socket=パス Linuxでは、ローカル接続に使用するソケットファイル(デフォルトでは/tmp/mysql.sock)を指定。Windowsでは、名前つきパイプを使用するローカル接続用パイプ名(デフォルトではMySQL)
-t, --tmpdir=パス テンポラリファイルの作成に使用されるディレクトリの位置を指定。MySQL4.1以降、複数のパスの指定が可能。Linuxでは、「:」(コロン)を、Windowsでは「;」(セミコロン)を使用してパスを区切ります
-u, --user={ ユーザ名 | ユーザID } mysqldサーバをユーザ名またはユーザIDとして実行。このユーザ名はシステムのユーザのことです
-V, --version バージョン情報を表示

TOP

サーバが起動しているかどうか確認する

 MySQLのサービスが稼動しているかどうかをコマンドで確認できます。「mysqld is alive」と出てくればサービス稼動中です。

  ・Windows
    C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p ping
    Enter password: ******
    mysqld is alive

  ・Linux
    # /usr/local/mysql/bin/mysqladmin ping -u root -p
    Enter password: 
    mysqld is alive
 サービスが起動していないときは、以下のような表示が出ます。
  ・Windows
    C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p ping
    Enter password: ******
    mysqladmin: connect to server at 'localhost' failed
    error: 'Can't connect to MySQL server on 'localhost' (10061)'
    Check that mysqld is running on localhost and that the port is 3306.
    You can check this by doing 'telnet localhost 3306'

  ・Linux
    # /usr/local/mysql/bin/mysqladmin ping -u root -p
    Enter password: 
    /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
    error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
    Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

TOP