Top  -  必要なもの  -  はじめに  -  インストール  -  設定
変換機能  -  FAQ  -  開発者  -  著作権表示  -  翻訳者  -  この文書の翻訳者

phpMyAdmin 2.7.0-pl2 ドキュメント


必要なもの


はじめに

phpMyAdmin は MySQL サーバを丸ごと管理できます(スーパーユーザが必要です)。また、単一のデータベースも管理できます。後者の場合は MySQL ユーザを適切にセットアップしてお望みのデータベースのみを読み書きできるようにする必要があるのですが、これはみなさんの方で MySQL マニュアルの適切な箇所をご覧ください。
phpMyAdmin は現在次のことができます:

(*)  phpMyAdmin は、Zlib(--with-zlib)/Bzip2(--with-bz2)をサポートした PHP4(≧ 4.0.4)を利用すると、ダンプや CSV エクスポートを(Zip、GZip -RFC 1952-、Bzip2 形式)で圧縮できます。


インストール

注意:phpMyAdmin は MySQL データベースサーバに特別なセキュリティをほどこすものではありません。phpMyAdmin を使ったとしても、MySQL データベースに適切なパーミッションを付与するのはやはりシステム管理者の仕事です。ただし、その目的で phpMyAdmin の「特権(Privileges)」ページを使うことはできます。

Mac ユーザ向けの警告:OS X より前のバージョンの MacOS を使うと、解凍の際に StuffIt が Mac 形式にしてしまうため、サーバにアップロードする前に BBEdit で「すべての」phpMyAdmin スクリプトを Unix 風にセーブしなおさなければならなくなります。PHP はどうも Mac 風の改行文字(「\r」)を好まないようなのです。

クイックインストール

  1. ウェブサーバのドキュメントルートで tar -xzvf phpMyAdmin_x.x.x.tar.gz を実行して配布ファイルを解凍します(サブディレクトリを展開するように解凍してください)。ドキュメントルートに直接アクセスできない場合は、ローカルマシンのディレクトリにファイルを解凍します。ステップ 3 まで済んだらそのディレクトリを FTP などでウェブサーバに転送してください。
  2. かならずすべてのスクリプトのオーナーを適切に設定してください(PHP がセーフモードになっている場合、スクリプトによってオーナーが異なると問題を起こすことになります)。設定例については FAQ 4.2 をご覧ください。
  3. お好きなエディタで config.inc.php ファイルを作成し、ホスト、ユーザ、パスワード、認証モードの値をお使いの環境にあわせて記入します。これらのフィールドの定義の仕方については config.default.php をご覧ください。ここで言う「ホスト」は MySQL サーバのことです。「設定」セクションにはすべての値が説明されています。また、認証モードとリンクテーブル構造の情報については引き続きこの「インストール」セクションをご覧ください。
  4. config認証タイプを利用する場合は phpMyAdmin をインストールしたディレクトリを、たとえば .htaccess ファイルの HTTP–AUTH で保護することをおすすめします。詳しくはこの FAQ のマルチユーザの項、特に FAQ 4.4 をご覧ください。
  5. ブラウザで<お使いのホスト>/<インストールしたディレクトリ>/index.php を開きます。phpMyAdmin の入口ページとお使いのデータベース(HTTP/クッキー認証モードを使う場合はログインダイアログ)が表示されるはずです。

リンクテーブル構造

一連の新機能(ブックマーク、コメント、SQL 履歴、PDF 生成、フィールド内容の変換等)を使うには専用のテーブル群を作成する必要があります。これらのテーブル群はお使いのデータベースに格納することもできますし、マルチユーザの場合はセントラルデータベースに格納することもできます(このセントラルデータベースは管理ユーザがアクセスするものです。ほかのユーザはアクセスできないようにしてください)。

scripts/ ディレクトリを確認してください。create_tables.sql というファイルがあるはずです(Windows サーバをお使いの場合は FAQ 1.23 をよくお読みください)。

MySQL サーバのバージョンが 4.1.2 以降の場合、新規インストールの際には create_tables_mysql_4_1_2+.sql をお使いください。

既存のテーブル構造を MySQL 4.1.2 以降にアップグレードする場合は upgrade_tables_mysql_4_1_2+.sql をお使いください。

phpMyAdmin を使ってテーブル群を作成することもできますが、ご注意ください。データベースやテーブルを作成する際には特別な(管理者の)権限が必要になるかもしれません。また、データベース名によってはスクリプトに多少の修正を加える必要があるかもしれません。

create_tables.sql ファイルをインポートしたら、config.inc.php ファイルでテーブル名を指定してください。このとき使うディレクティブの説明は「設定」セクションにあります。また、これらのテーブル群に対する適切なアクセス権を持った管理ユーザが必要になります(後述の認証モードの使い方をご覧ください)。

旧版からのアップグレード

それまで使っていた config.inc.php を新しいインストール先にコピーしていただくだけで結構です。アップグレード前の phpMyAdmin が 2.3.0 以前のバージョンの場合はいくつかの修正が必要になるかもしれません。これらの古い設定ファイルは 2.7.0 からサポートされなくなりました。

認証モードの使い方

「http」認証モード

「クッキー」認証モード

「config」認証モード


設定

Mac ユーザ向けの警告: PHP は Mac の改行文字(「\r」)を好まないようです。かならずテキストエディタで UNIX/Linux の改行文字(「\n」)を使えるようにするオプションを選択してから修正したスクリプトを保存してください。

設定にあたっての注意: 設定可能なデータはほとんどが config.inc.php にあります。このファイルが存在しない場合はクイックインストールの項を参照して作成しておいてください。このファイルには config.default.php で定義されているデフォルト値を変更したいパラメータのみ含めておけば結構です。

(色など)デザイン関係のパラメータは themes/<テーマ名>/layout.inc.php にあります。また、config.footer.inc.phpconfig.header.inc.php を修正すれば各ページの先頭と末尾にページ固有のコードを追加できます。

$cfg['PmaAbsoluteUri'] string
お使いの phpMyAdmin をインストールしたディレクトリへの完全な URL を(フルパスで)指定します。
(例) http://www.your_web.net/path_to_your_phpMyAdmin_directory/ なお、ウェブサーバによってはこの URL の大文字小文字を区別します。末尾のスラッシュを忘れないようにしてください。

バージョン2.3.0からはここを空欄にすることが推奨されています。たいていの場合、phpMyAdminは自動的に適切な設定を検出します。ポート転送をしているユーザはPmaAbsoluteUriを設定する必要があるでしょう(解説)。 試しに、テーブルを表示して、列を編集して保存してみてください。phpMyAdmin が正しい値を自動検出できていない場合はエラーメッセージが表示されるはずです。この値を設定してくださいというエラーが出る、あるいは自動検出コードがパスの検出に失敗する場合は、開発陣がコードを改善できるよう、バグレポートをバグトラッカーにお送りください。
$cfg['PmaNoRelation_DisableWarning'] boolean
バージョン 2.3.0 以降、マスタ/外部テーブルを操作する機能が多数提供されています(→ $cfg['Servers'][$i]['pmadb'])。
そのマスタ/外部データベースをセットアップしてみてもうまくいかない場合、その機能を利用したいデータベースの「構造(Structure)」ページを見れば、無効になっている理由を分析するリンクが見つかるはずです。
そういった機能を使いたくない場合は、この変数を TRUE に設定しておけばメッセージが表示されなくなります。
$cfg['blowfish_secret'] string
バージョン 2.5.2 以降、「クッキー」認証タイプは blowfish アルゴリズムを使ってパスワードを暗号化します。
「クッキー」認証タイプを利用する場合は、ここにお好みのランダムなパスフレーズを入力してください。このパスフレーズは blowfish アルゴリズムが内部的に利用するものです。ユーザがパスフレーズを入力するよう求められることはありません。このパラメータの最大文字数は46文字のようです。
$cfg['Servers'] array
バージョン 1.4.2 以降、phpMyAdmin は複数の MySQL サーバを管理できるようになっています。そのために追加されたのが $cfg['Servers'] 配列です。ここにはさまざまなサーバへのログイン情報が格納されます。たとえば、最初の $cfg['Servers'][$i]['host'] には最初のサーバのホスト名が、二番目の $cfg['Servers'][$i]['host'] には二番目のサーバのホスト名が入ります。config.default.php にはひとつしかサーバ定義がありませんが、必要があれば config.inc.php にいくつでも定義を追加できます。config.default.php から該当ブロックを丸ごと、あるいは必要な部分のみコピーしてください(すべての設定を定義する必要はありません。必要な部分のみ変更してください)。
$cfg['Servers'][$i]['host'] string
$i 番目の MySQL サーバのホスト名ないし IP アドレスが入ります。(例)localhost
$cfg['Servers'][$i]['port'] string
$i 番目の MySQL サーバのポート番号が入ります。デフォルトは 3306 です(空欄にしておいてください)。ホスト名を「localhost」にすると、MySQL はポート番号を無視してソケット接続しますので、デフォルトとは別のポートで接続したい場合は $cfg['Servers'][$i]['host'] に「127.0.0.1」か、本当のホスト名を入れてください。
$cfg['Servers'][$i]['socket'] string
利用するソケットへのパスが入ります。空欄にするとデフォルトのソケットが使われます。
$cfg['Servers'][$i]['connect_type'] string
MySQL サーバで利用する接続タイプが入ります。選択肢は「socket」「tcp」です。デフォルトが「tcp」になっているのは、どんな MySQL サーバでもほぼ確実に利用できるためです。ソケットの方はプラットフォームによってはサポートされていません。

ソケットモードを利用する場合、MySQL サーバはウェブサーバと同じ機械上になければなりません。
$cfg['Servers'][$i]['extension'] string
接続に利用する php MySQL エクステンション が入ります。有効な選択肢は次の通りです。

mysql :  古典的な MySQL エクステンションです。現時点ではおすすめできるデフォルトの方法です。

mysqli :  MySQL エクステンションの改良版です。このエクステンションは php 5.0.0 で利用できるようになりました。MySQL 4.1.x が走っているサーバに接続する場合はおすすめです。
注記:phpMyAdmin の MySQL 4.1 サポートは実験段階です!
$cfg['Servers'][$i]['compress'] boolean
MySQL サーバとの接続に圧縮プロトコルを使うかどうかが入ります(実験段階です)。
この機能には PHP ≧ 4.3.0 が必要です。

$cfg['Servers'][$i]['controluser'] string
$cfg['Servers'][$i]['controlpass'] string
注記:phpMyAdmin 2.6.1 以降、管理ユーザを設定しないと HTTP/クッキー認証が有効にならないのは 4.1.2 より古い MySQL サーバにのみ適用される話となりました。

この特別なアカウントはふたつの異なった目的で使われます。リレーション機能全般を利用できるようにするのと(→ $cfg['Servers'][$i]['pmadb'])、4.1.2 より古い MySQL サーバでマルチユーザインストールを可能にするためです(http/クッキー認証モード)。

HTTP/クッキー認証モード(あるいは、phpMyAdmin 2.2.1 以降の「config」認証モード)を使う場合、mysql.user(「Password」以外の全カラム)mysql.db(全カラム)mysql.tables_priv(「Grantor」、「Timestamp」以外の全カラム) テーブルに SELECT 特権を持つ MySQL アカウントの情報を提供する必要があります。このアカウントはログイン時にどのデータベースを表示するかチェックするのに利用されます。
詳細はインストールセクションの「認証モードの使い方」をご覧ください。

なお、この「管理ユーザ」で phpMyAdmin にログインしようとすると、「管理ユーザ」に与えた特権によってはエラーが出ることがあります。phpMyAdmin では「管理ユーザ」のダイレクトログインはサポートしていません。

2.2.5 より前の phpMyAdmin では「stduser/stdpass」という名前でした。
$cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
そのサーバで利用する認証方法が入ります(config/cookie/http)。
詳細はインストールセクションの「認証モードの使い方」をご覧ください。

$cfg['Servers'][$i]['user'] string
$cfg['Servers'][$i]['password'] string
auth_type = 'config' の場合は MySQL サーバに接続するときに phpMyAdmin が利用するユーザ/パスワードの組が入ります。このユーザ/パスワードの組は、HTTP/クッキー認証を利用する場合は必要ありませんので、空欄にしておいてください。

$cfg['Servers'][$i]['only_db'] string または array
データベース名(の配列)を設定すると、ユーザにはそのデータベースしか見えなくなります。phpMyAdmin 2.2.1 以降、このデータベース名には MySQL のワイルドカード文字(「_」と「%」)を含められます。ワイルドカード文字をリテラルとして使う場合はエスケープしてください('my_db' ではなく、 'my\_db' のようにします)。
この設定はサーバの負荷を下げるのに効果的です。利用できるデータベースのリストを作成する際に MySQL にリクエストを送る必要がなくなるためです。ただし、これは MySQL データベースサーバの特権を差し替えるものではありません。つまり、設定すればそのデータベースだけが表示されるようになりますが、ほかのすべてのデータベースが使えなくなるわけではないのです。

複数のデータベースを利用する場合はこのようにします: $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');

phpMyAdmin 2.5.5 では、左フレームのデータベースの並び順を決める際に、配列のなかでの並び順を利用するようになったため、データベースの配置を個別に指定できるようになりました。
いくつかのデータベースがトップにあれば、あとはかまわないということであれば、残りのデータベースを指定する必要はありません。次のようにしてください:$cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); phpMyAdmin は db3 と db4 をトップに置いて、残りをアルファベット順に並べます。
$cfg['Servers'][$i]['verbose'] boolean
複数のサーバエントリがあるなら便利です。設定しておくと、メインページのプルダウンメニューに、ホスト名ではなく、この文字列が表示されます。たとえば、システム上のいくつかのデータベースのみ表示させる場合には便利でしょう。

$cfg['Servers'][$i]['pmadb'] string
リンクテーブル構造を格納するデータベース名が入ります。

この文書のリンクテーブル構造のセクションをご覧ください。このテーブル構造の利点や、データベースの簡単な作成法、必要なテーブルが書かれています。

インストールした phpMyAdmin のユーザがひとりの場合は、お使いのデータベースに専用のテーブル群を格納することもできます。その場合は $cfg['Servers'][$i]['pmadb'] にはお使いのデータベース名を入れていただければ結構です。マルチユーザの場合はリンクテーブル構造を格納するセントラルデータベース名を設定します。

$cfg['Servers'][$i]['bookmarktable'] string
リリース 2.2.0 以降の phpMyAdmin ではブックマーククエリを利用できます。よく利用するクエリがある場合は便利です。

この機能を有効にするには、

$cfg['Servers'][$i]['relation'] string
リリース 2.2.4 以降、専用の「リレーション」テーブルにどのフィールドが別のテーブルのキー(外部キー)になっているか記述することができるようになりました。phpMyAdmin は現在この機能を次のような用途で使っています。
キーは数値でも文字でも可です。

この機能を利用できるようにするには、
注意してください。現在のバージョンでは、master_dbforeign_db と一致しなければなりません。これらのフィールドは将来クロスデータベースリレーションを開発するために用意されています。

$cfg['Servers'][$i]['table_info'] string
リリース 2.3.0 以降、対応するキーにカーソルを動かしたときどのフィールドをツールチップとして表示するか、専用の「table_info」テーブルに記述できるようになりました。
この変数はその専用のテーブル名を保持します。 この機能を利用できるようにするには、
使い方のコツ:表示するフィールド

$cfg['Servers'][$i]['table_coords'] string
$cfg['Servers'][$i]['pdf_pages'] string
リリース 2.3.0 以降、phpMyAdmin はテーブル間のリレーションを表示する PDF ページを作成できるようになりました。このためには「pdf_pages」(作成する PDF ページの情報の保管用)と「table_coords」(PDF スキーマ出力の際に各テーブルが配置される座標の保管用)というふたつのテーブルが必要となります。

また、「リレーション」機能を使っていなければなりません。

この機能を利用するには、
使い方のコツ:PDF 出力

$cfg['Servers'][$i]['column_info'] string
リリース 2.3.0 以降、テーブルごとに各コラムの説明を保管できるようになりました。このコメントは「印刷用表示」の際に表示されます。

リリース 2.5.0 以降、テーブルのプロパティページやテーブルの表示機能でもコメントを利用するようになりました。カラム名の上に表示されるツールチップ(プロパティページ)や表示機能のテーブルヘッダに埋め込まれます。また、テーブルをダンプする際に表示することもできます。後述の関連ディレクティブもご覧ください。

また、リリース 2.5.0 の新機能として、MIME 変換システムがありますが、これも以下のテーブル構造をベースにしています。詳しくは「変換機能」をご覧ください。MIME 変換システムを利用する際は、column_info テーブルに「mimetype」、「transformation」、「transformation_options」というフィールドを新たに付け加える必要があります。

この機能を利用できるようにするには、

$cfg['Servers'][$i]['history'] string
リリース 2.5.0 以降、SQL の履歴(phpMyAdmin インタフェースに手入力したすべてのクエリ)を保管できるようになりました。テーブルベースの履歴は利用したくない場合、JavaScriptベースの履歴を利用することもできます。この場合、ウインドウを閉じるとすべての履歴が削除されます。

$cfg['QueryHistoryMax'] を使うと保持しておきたい履歴アイテムの数を指定できます。このリストはログインのたびに上限値にまで切り詰められます。

クエリの履歴を利用できるのはブラウザの JavaScript が有効になっている場合のみです。

この機能を利用できるようにするには、
$cfg['Servers'][$i]['verbose_check'] string
リリース 2.5.0 では新しい MIME 変換機能をサポートするようになったため、column_info テーブルに新しいフィールドが 3 つ追加されました。この変数を TRUE(デフォルト)にセットしておくと、最新のテーブル構造が利用できるようになっているかチェックします。利用できない場合はスーパーユーザに警告を発します。

このチェック機能はこの変数を false にすることで無効にできます。無効にするとパフォーマンスが向上します。

確実にテーブル構造が最新になっているときは FALSE にするのがおすすめです。
$cfg['Servers'][$i]['AllowRoot'] boolean
ルートのアクセスを許可するかどうか。これは下記の規則を簡略化しただけのものです。

$cfg['Servers'][$i]['AllowDeny']['order'] string
規則の適用順が空の場合、IP 認証は無効になります。

規則の適用順が 「deny,allow」 の場合、システムはすべての拒否規則を適用してから許可規則を適用します。アクセスは許可がデフォルトです。拒否コマンドに一致しないクライアント、許可コマンドに一致するクライアントはすべてサーバへのアクセスが許可されます。

規則の適用順が 「allow,deny」 の場合、システムはすべての許可規則を適用してから拒否規則を適用します。アクセスは拒否がデフォルトです。許可コマンドに一致しないクライアント、拒否コマンドに一致するクライアントはすべてサーバへのアクセスが拒否されます。

規則の適用順が「explicit」の場合、認証は「deny,allow」と同様に行われますが、制限が追加されて、ホスト名/ユーザ名の組が allow 規則に含まれ、かつ、deny 規則には含まれない必要があります。これは「Allow/Deny」規則を利用するうえでは最も安全な方法です。以前は Apache で順番を指定せずに許可・拒否規則を指定することで実現していたものです。

$cfg['Servers'][$i]['AllowDeny']['rules'] string の array
この規則の一般的なフォーマットは次の通りです。
      <'allow' | 'deny'> <username> [from] <ipmask>

すべてのユーザに一致させたいのであれば、username フィールドにワイルドカードとして '%' を入れることもできます。
また、ipmask フィールドでもいくつかショートカットが利用できます(ご注意ください。SERVER_ADDRESSの部分はどんなサーバでも利用できるとは限りません):

     'all' -> 0.0.0.0/0
     'localhost' -> 127.0.0.1/8
     'localhostA' -> SERVER_ADDRESS/8
     'localhostB' -> SERVER_ADDRESS/16
     'localhostC' -> SERVER_ADDRESS/24


規則のリストを空にすると、規則の適用順が 「deny,allow」 の場合は 「allow % from all」 と、適用順が 「allow,deny」 ないし 「explicit」 の場合は 「deny % from all」 と等価になります。

IP のマッチング規則としては、下記が利用できます:
xxx.xxx.xxx.xxx (単一の IP アドレスそのもの)
xxx.xxx.xxx.[yyy-zzz] (IP アドレスの範囲指定)
xxx.xxx.xxx.xxx/nn (CIDR(Classless Inter-Domain Routing)タイプの IP アドレス)
ただし、下記は利用できません:
xxx.xxx.xxx.xx[yyy-zzz](IP アドレスの一部範囲指定)
$cfg['ServerDefault'] integer
複数のサーバが設定されている場合、$cfg['ServerDefault'] にサーバ番号を設定しておくと phpMyAdmin を立ち上げたときに自動的にそのサーバに接続するようにできます。0 にセットするとログインしないでサーバのリストを表示します。
サーバがひとつしか設定されていない場合、$cfg['ServerDefault'] はそのサーバに設定「しなければなりません」。
$cfg['OBGzip'] string/boolean
HTTP 転送のスピードアップのために GZip 出力バッファリングを利用するかどうかを定義します。
true/false にセットすると有効/無効になります。(文字列で)「auto」にすると、phpMyAdmin は出力バッファリングを有効にしようとしますが、ブラウザの方で何かバッファリングに問題が出た場合は自動的に無効にします。IE6 に特定のパッチをあてると、バッファリングを有効にしたときにデータが壊れる問題があることがわかっています。
$cfg['PersistentConnections'] boolean
持続的接続を利用するかどうか(mysql_connect するか mysql_pconnect するか)。
$cfg['ForceSSL'] boolean
phpMyAdmin にアクセスするときに https を強制するかどうか。
$cfg['ExecTimeLimit'] integer [秒数]
スクリプトが実行していられる秒数を指定します。秒数を 0 にすると時間制限はなくなります。
この設定はダンプファイルのインポート/エクスポートをする際に利用されますが、PHP がセーフモードになっているときは効果がありません。
$cfg['SkipLockedTables'] boolean
利用しているテーブルに印をつけることで、テーブルがロックされているデータベースを表示できるようにします(3.23.30 以降)。
$cfg['ShowSQL'] boolean
phpMyAdmin が生成する SQL クエリを表示するかどうかを定義します。
$cfg['AllowUserDropDatabase'] boolean
通常ユーザ(administrator 以外のユーザ)に自分自身のデータベースの削除を許可するかどうかを定義します。FALSE にすると、「データベースを削除(Drop Database)」のリンクは表示されませんし、「DROP DATABASE mydatabase」すらも拒否されます。多くの顧客をかかえる ISP にとってはきわめて実用的です。
$cfg['Confirm'] boolean
データが消失しそうな操作をしたときに警告(「本当に〜してもよいですか」)を表示するかどうか。
$cfg['LoginCookieRecall'] boolean
クッキー認証モードの場合に、前回ログインしたときの状態に戻すかどうかを定義します。
$cfg['UseDbSearch'] boolean
「データベース内の検索」を有効にするかどうかを定義します。
$cfg['IgnoreMultiSubmitErrors'] boolean
複数のクエリを含む文のクエリのひとつが失敗したときに処理を続けるかどうかを定義します。デフォルトでは処理を中止します。
$cfg['VerboseMultiSubmit'] boolean
複数のクエリを含む文のそれぞれのクエリの結果を SQL 出力のなかにインラインコメントとして埋め込むかどうかを定義します。デフォルトは TRUE です。

$cfg['AllowArbitraryServer'] boolean
有効にすると、クッキー認証を利用して任意のサーバにログインできます。

注意: この機能は慎重にご利用ください。http サーバが置かれているファイアウォールの外にある MySQL サーバにアクセスできてしまうことがあります。

$cfg['LeftFrameLight'] boolean
select ベースのメニューを利用して現在利用できるテーブルのみを左フレーム(小さい方のページ)に表示するかどうかを定義します。$cfg['LeftFrameTableSeparator'] を利用したフォルダのネスト表示はライトモードではない場合のみ利用できます。
$cfg['LeftFrameDBTree'] boolean
ライトモードのときに(セレクターの)データベース名をツリー表示するかどうかを定義します。$cfg['LeftFrameDBSeparator']もご覧ください。
$cfg['LeftFrameDBSeparator'] string
データベース名をツリー表示するときに利用する区切り文字列を定義します。
$cfg['LeftFrameTableSeparator'] string
テーブルをネスト表示するときの区切りとなる文字列を定義します。デフォルトは「__」です。つまり、「first__second__third」のようなテーブルがあったら、first > second > third のように三階層あるものとして表示されます。FALSE を指定するか、空欄になっている場合は、この機能は無効になります。注意:この区切り文字をテーブル名の先頭ないし末尾にしたり、間にほかの文字を含めずに複数連続させてはなりません。
$cfg['LeftFrameTableLevel'] string
テーブルを上記の区切り文字で分割表示する際に何層まで表示するかを定義します。
$cfg['ShowTooltip'] boolean
テーブルのコメントをツールチップとして左フレームに表示するかどうかを定義します。
$cfg['ShowTooltipAliasDB'] boolean
ツールチップが有効でデータベースのコメントが設定されている場合、コメントと本当の名前を反転させます。つまり、「user0001」というテーブルに「MyName」というコメントを追加した場合、左フレームには「MyName」という名前が表示され、ツールチップにはデータベースの本当の名前が表示されます。
$cfg['ShowTooltipAliasTB'] boolean/string
$cfg['ShowTooltipAliasDB'] と同じですが、こちらはテーブル名を反転させます。「nested」に設定すると、テーブルの別名は $cfg['LeftFrameTableSeparator'] ディレクティブによってテーブルを分割/ネストするときにしか使われません。そのため、フォルダの方は別名に応じた名前になりますが、テーブル名そのものは本当のテーブル名のままになります。

$cfg['LeftDisplayLogo'] boolean
phpMyAdmin ロゴを左フレームの最上部に表示するかどうかを定義します。デフォルトは TRUE です。
$cfg['LeftDisplayServers'] boolean
サーバの選択肢を左フレームの最上部に表示するかどうかを定義します。デフォルトは FALSE です。
$cfg['DisplayServersList'] boolean
そのサーバの選択肢をドロップダウンではなくリンクとして表示するかどうかを定義します。デフォルトは FALSE(ドロップダウン)です。
$cfg['ShowStats'] boolean
データベースやテーブルの使用量などの統計情報を表示するかどうかを定義します。
ただし、統計情報を表示するには少なくとも MySQL 3.23.3 が必要です。また、現時点の MySQL は Berkeley DB テーブル向けの情報などは返しません。
$cfg['ShowPhpInfo'] boolean
$cfg['ShowChgPassword'] boolean
一般ユーザの場合に、立ち上げ時のメイン(右)フレームに「PHP 情報」、「パスワードの変更」リンクを表示するかどうかを定義します。この設定では直接入力された MySQL コマンドをチェックしません。

ご注意ください。スクリプト中で phpinfo() を使えなくするには php.iniに下記の行を含める必要があります。
    disable_functions = phpinfo()

また、「パスワードの変更」リンクは「config」認証モードでは無効になります。設定ファイルにハードコードされたパスワードの値はエンドユーザが書き換えられないためです。
$cfg['SuggestDBName'] boolean
「データベースの作成(Create Database)」フォームでデータベース名を提案するかテキストフィールドを空欄にしておくかを定義します。
$cfg['ShowBlob'] boolean
テーブルの内容を表示するときに BLOB フィールドの内容も表示するかどうかを定義します。
$cfg['NavigationBarIconic'] string
ナビゲーションバーのボタンと、右パネルのトップメニューにテキストを含めるか、シンボルのみにするかを定義します。値が TRUE のときはアイコンを、FALSE のときはテキストを、'both' のときはアイコンとテキストの双方を表示します。
$cfg['ShowAll'] boolean
表示モードで「すべて(のレコード)を表示する」ボタンを表示するかどうかを定義します。
$cfg['MaxRows'] integer
結果セットの表示行数。結果セットの行数の方が多い場合は「前(Previous)/次(Next)」のリンクが表示されます。
$cfg['Order'] string [DESC|ASC|SMART]
デフォルトではフィールドを昇順(ASC)で表示するか、降順(DESC)で表示するか、「スマートな」順番(SMART)――つまり、TIME、DATE、DATETIME、TIMESTAMP の場合は降順、それ以外は昇順――で表示するかを定義します。
$cfg['ProtectBinary'] boolean または string
テーブルの内容を表示しているときに BLOB フィールドや BINARY フィールドを保護して修正できないようにするかどうかを定義します。 有効な値は次の通りです:
$cfg['ShowFunctionFields'] boolean
修正/挿入モードで MySQL 関数フィールドを表示するかどうかを定義します。
$cfg['CharEditing'] string
CHAR フィールドと VARCHAR フィールドでどちらの編集用コントロールを利用するか定義します。可能な値は次の通りです: デフォルトは昔ながらの input です。
$cfg['InsertRows'] integer
挿入ページに一度に表示できるエントリの最大値を定義します。
$cfg['ForeignKeyMaxLimit'] integer
外部キーに指定された項目がこの値より少ない場合は、$cfg['ForeignKeyDropdownOrder'] の設定にあわせたスタイルで外部キーのドロップダウンボックスが表示されます。
$cfg['ForeignKeyDropdownOrder'] array
外部キーのドロップダウンフィールドには、いくつかの表示方法がありますが、キーと値データの双方が表示されます。この配列には次の文字列のいずれか、または双方が入ります: 'content-id''id-content'
$cfg['ZipDump'] boolean
$cfg['GZipDump'] boolean
$cfg['BZipDump'] boolean
ダンプファイルを作成するときに zip/GZip/BZip2 圧縮を利用できるようにするかどうかを定義します。

$cfg['CompressOnFly'] boolean
GZip/BZip2 でエクスポートを圧縮する際、オン・ザ・フライ(実行中)圧縮を許可するかどうかを定義します。比較的小さなダンプの場合は関係ありませんが、許可すると、圧縮しない限り php のメモリ制限にひっかかるような大きなダンプも作成できるようになります。こうして生成したファイルはオン・ザ・フライ圧縮をしなかったときより GZip/BZip2 ヘッダの数が多くなりますが、まともなプログラムならどれでも正しく処理してくれます。
$cfg['LightTabs'] string
True にすると、メインフレーム上部のタブをグラフィックの少ないものにします。
$cfg['PropertiesIconic'] string
True にすると、データベースやテーブルのプロパティリンクに(「表示」、「選択」、「挿入」といった)テキストではなくアイコンを表示します。
「both」にすると、アイコン「と」テキストを表示します。
False にすると、テキストのみを表示します。
$cfg['PropertiesNumColumns'] integer
データベースのプロパティを表示する際に何カラム分のテーブルを表示するか。デフォルトは 1 です。1 より大きい値に設定した場合、表示領域を広げるためデータベースのタイプは表示されなくなります。
$cfg['DefaultTabServer'] string
サーバ表示の際にデフォルトで表示されるタブを定義します。可能な値は次の通りです:「main.php」(マルチユーザ環境におすすめ)、「server_databases.php」、「server_status.php」、「server_variables.php」、「server_privileges.php」、「server_processlist.php」
$cfg['DefaultTabDatabase'] string
データベース表示の際にデフォルトで表示されるタブを定義します。可能な値は次の通りです:「db_details_structure.php」、「db_details.php」、「db_search.php」
$cfg['DefaultTabTable'] string
テーブル表示の際にデフォルトで表示されるタブを定義します。可能な値は次の通りです:「tbl_properties_structure.php」、「tbl_properties.php」、「tbl_select.php」、「tbl_change.php」
$cfg['MySQLManualBase'] string
MySQL 文書の URI を設定すると(文書のタイプは $cfg['MySQLManualType'] の値によります)、適切なヘルプ用のリンクが生成されます。
MySQL マニュアルとそのタイプの詳細については MySQL ドキュメントのページ をご覧ください。
$cfg['MySQLManualType'] string
MySQL 文書のタイプです:
$cfg['DefaultLang'] string
ブラウザもユーザも言語を定義していないときに利用するデフォルトの言語を定義します。
有効な値については select_lang.lib.php スクリプトをご覧ください。
$cfg['Lang'] string
言語の設定を強制して、常にこの言語を使うようにします(ただし、select_lang.lib.php スクリプトで定義されている言語でなければなりません)。
$cfg['FilterLanguages'] string
利用可能な言語の一覧を与えられた正規表現にマッチするものに限定します。たとえば、チェコ語と英語のみに限定したければ、フィルターを '^(cs|en)' のように設定します。
$cfg['DefaultCharset'] string
MySQL クエリを記録する際に利用するデフォルトの文字セット。$cfg['AllowAnywhereRecoding'] オプションが有効になっている必要があります。
$cfg['AvailableCharsets'] 配列内の文字セットであればどれを記入しても結構です。また、これはデフォルト値でしかありません。ユーザは自由に文字セットを選択できます。
$cfg['AllowAnywhereRecoding'] boolean
MySQL クエリの文字セットの変換を許可します。MySQL のクエリの文字コードを変換するには、PHP が(コンパイルの際に組み込まれているか、モジュールを利用することで)recode や iconv をサポートしている必要があります。また、利用する言語ファイルの方でも変換が有効になっている必要があります(デフォルトでは Unicode で記述されている言語ファイルのみ有効です。これは文字の脱落を防ぐためです)。

これを TRUE に設定すると、エクスポートページにもファイルをエクスポートするときの文字セットを選択できるプルダウンメニューが表示されるようになります。
$cfg['RecodingEngine'] string
文字セットの変換にどの関数を利用するかを選択できます。 可能な値は次の通りです:
デフォルトは auto です。
$cfg['IconvExtraParams'] string
文字セット変換で利用する iconv 向けのパラメータを指定します。詳しくは iconv のドキュメント をご覧ください。
$cfg['AvailableCharsets'] array
MySQL 変換で利用できる文字セットです。(recode/iconv がサポートしているものを)自分で追加したり、使わないものを削除したりもできます。文字セットはこのリストと同じ順番で表示されますので、頻繁に使うものは先頭に移してください。
$cfg['GD2Available'] string
GD ≧ 2 が利用できるかどうかを指定します。利用できる場合、MIME 変換の際に活用できます。
可能な値は次の通りです:
デフォルトは auto です。
$cfg['LeftWidth'] integer
左フレームの幅をピクセルで指定します。themes/themename/layout.inc.php をご覧ください。
$cfg['LeftBgColor'] string [HTML の色指定]
$cfg['RightBgColor'] string [HTML の色指定]
左右のフレームの背景色(HTML)。themes/themename/layout.inc.php をご覧ください。
$cfg['RightBgImage'] string
右フレームの背景画像の URI。絶対 URI でなければなりません。themes/themename/layout.inc.php をご覧ください。
$cfg['LeftPointerColor'] string [HTML の色指定]
左フレームのポインタの色(HTML。Netscape 4 では動作しません)。themes/themename/layout.inc.php をご覧ください。
$cfg['LeftPointerEnable'] boolean
TRUE の場合は左のポインタを有効にします(LeftFrameLight が FALSE の場合)。
$cfg['Border'] integer
テーブルの幅のサイズ。themes/themename/layout.inc.php をご覧ください。
$cfg['ThBgcolor'] string [HTML の色指定]
テーブルのヘッダに使われる色(HTML)。themes/themename/layout.inc.php をご覧ください。
$cfg['BgcolorOne'] string [HTML の色指定]
テーブルの奇数行に使われる色(HTML)。themes/themename/layout.inc.php をご覧ください。
$cfg['BgcolorTwo'] string [HTML の色指定]
テーブルの偶数行に使われる色(HTML)。themes/themename/layout.inc.php をご覧ください。
$cfg['BrowsePointerColor'] string [HTML の色指定]
$cfg['BrowseMarkerColor'] string [HTML の色指定]
表示モードのポインタとマーカの色(HTML。Netscape 4 では動作しません)。
前者はマウスが重なった行を強調表示するためのもの、後者はクリックした行に視覚的なマークを付けたり消したりできるようにするためのものです。
themes/themename/layout.inc.php をご覧ください。
$cfg['BrowsePointerEnable'] boolean
表示ポインタを有効にするかどうか。
$cfg['BrowseMarkerEnable'] boolean
表示マーカを有効にするかどうか。
$cfg['TextareaCols'] integer
$cfg['TextareaRows'] integer
$cfg['CharTextareaCols'] integer
$cfg['CharTextareaRows'] integer
textarea の行・列数。
この値は SQL クエリの textarea の場合は 2 倍に、クエリウインドウ内の SQL 用 textarea の場合は 1.25 倍になります。
Char のついた値は CHAR と VARCHAR を修正する際に使われます($cfg['CharEditing'] でそのように設定されている場合)。
$cfg['LongtextDoubleTextarea'] boolean
LONGTEXT フィールドの textarea のサイズを倍にするかどうかを定義します。
$cfg['TextareaAutoSelect'] boolean
クリックしたときにクエリボックスの textarea 全体を選択するかどうかを定義します。


$cfg['CtrlArrowsMoving'] boolean
修正時に Ctrl+カーソルキー(Safariの場合は Option+カーソルキー)でフィールド間を移動できるようにするかどうか。
$cfg['LimitChars'] integer
表示ページで、数字以外のフィールドに表示する最大文字数。表示ページ内のトグルボタンでオフにすることもできます。
$cfg['ModifyDeleteAtLeft'] boolean
$cfg['ModifyDeleteAtRight'] boolean
テーブルの内容を表示しているとき、修正や削除のリンクをどこに表示するかを定義します(左右両方に表示することもできます)。 「左(left)」と「右(right)」は、縦表示モードでは「上(top)」と「下(bottom)」と解釈されます。
$cfg['DefaultDisplay'] string
$cfg['HeaderFlipType'] string
表示モードには横並び(horizontal)、横並び縦ヘッダ(horizontalflipped)、縦並び(vertical)の 3 つがありますが、どれをデフォルトの表示にするかを定義します。横並びモードでは各行の内容を横一列に並べます。横並び縦ヘッダモードでは、ヘッダを 90 度回転させることで、フィールドに小さな値しか入っていない場合でも詳細なヘッダを表示できるようにします。縦並びモードでは各行の内容を縦一列に並べます。

HeaderFlipType に設定できる値は「css」か「fake」です。「css」の場合、横並び縦ヘッダ(horizontalflipped)モードでのヘッダの回転は CSS を通じて行われます。「fake」の場合は PHP が変換を行いますが、もちろんこの場合、CSS ほどの見栄えにはなりません。

$cfg['DefaultPropDisplay'] string
テーブルのカラムを修正/新規作成する際、通常はすべてのフィールドが一列に横並びしますが(デフォルトの「横並び(horizontal)」)、「縦並び(vertical)」にすると、各フィールドが上から下へ縦並びになります。こうすると、横幅を大いに節約できるため、スクロールする必要がなくなります。
$cfg['ShowBrowseComments'] boolean
$cfg['ShowPropertyComments'] boolean
対応する変数を TRUE にすると表示/プロパティ画面でカラムのコメントを表示できるようになります。表示モードの場合、コメントはヘッダのなかに表示されます。プロパティモードでは、コメントがついているフィールド名の下に CSS による破線が表示されます。コメントはフィールドのツールチップとして表示されます。
$cfg['UploadDir'] string
phpMyAdmin 以外の方法(たとえば ftp)でアップロードした SQL ファイルのあるディレクトリ名。このディレクトリにあるファイルはデータベース名、続いて SQL タブとクリックして表示されるドロップダウンボックスから利用できます。

ユーザごとにディレクトリを変えたい場合は、%u を使うとユーザ名に置換されます。

ご注意ください。ファイル名にはかならず「.sql」(圧縮形式のサポートが有効になっている場合は「sql.bz2」や「sql.gz」)という拡張子でなければなりません。

この機能は HTTP でアップロードするには大きすぎるファイルがあるときや、PHP のファイルアップロード機能が無効になっている場合に便利です。

ご注意ください。PHP がセーフモードになっている場合、このディレクトリは phpMyAdmin スクリプトのオーナーと同じユーザがオーナーになっている必要があります。

また、別の方法もあります。FAQ 1.16をご覧ください。
$cfg['docSQLDir'] string
phpMyAdmin にインポートする docSQL ファイルをアップロードするディレクトリ名。

ご注意ください。PHP がセーフモードになっている場合、このディレクトリは phpMyAdmin スクリプトのオーナーと同じユーザがオーナーになっている必要があります。
$cfg['SaveDir'] string
ダンプを保存するディレクトリ名。

ユーザごとにディレクトリを変えたい場合は、%u を使うとユーザ名に置換されます。

ご注意ください。このディレクトリはウェブサーバの実行ユーザが書き込みできるようになっている必要があります。

また、PHP がセーフモードになっている場合、このディレクトリは phpMyAdmin スクリプトのオーナーと同じユーザがオーナーになっている必要があります。
$cfg['TempDir'] string
一時ファイルを保管するディレクトリ名。

MS Excel のネイティブファイルをエクスポートする場合に必要になります。FAQ 6.23 をご覧ください。
$cfg['Export'] array
この配列はエクスポートの際のデフォルトパラメータを定義します。項目名はエクスポートページに表示されるテキストとほとんど同じですので、意味は簡単にわかるでしょう。
$cfg['Import'] array
この配列はインポートの際のデフォルトパラメータを定義します。項目名はインポートページに表示されるテキストとほとんど同じですので、意味は簡単にわかるでしょう。
$cfg['RepeatCells'] integer
X セルごとにヘッダを挿入します。0 の場合は繰り返しません。
$cfg['EditInWindow'] boolean
$cfg['QueryWindowWidth'] integer
$cfg['QueryWindowHeight'] integer
$cfg['QueryHistoryDB'] boolean
$cfg['QueryWindowDefTab'] string
$cfg['QueryHistoryMax'] integer
これらの変数はいずれもクエリウインドウ機能に関するものです。SQLというリンクないしアイコンは常に左パネルに表示されます。ブラウザの JavaScript が有効になっている場合は、ここをクリックすると別のクエリウインドウが開き、SQL クエリを直接入力できるようになります。JavaScript が無効の場合は右パネルがクエリボックスに変わります。

クエリウインドウの大きさは $cfg['QueryWindowWidth']$cfg['QueryWindowHeight'] によってカスタマイズできます。いずれもピクセル数を表す整数値が入ります。なお、これらの値は通常 layout.inc.php の中でお使いのテーマにあわせて修正されます。

$cfg['EditInWindow'] が true の場合は、結果ページの [修正(Edit)] (「レコード表示(Showing Rows)」のセクションにあります)をクリックすると、現在のクエリが入ったクエリウインドウが開きます。false の場合はリンクをクリックすると右パネルのクエリボックスに SQL クエリが入ります。

JavaScript 対応ブラウザを使っているなら JavaScript クエリウインドウを使うことをおすすめします。やりとりする変数の数は多いですが、使っている関数は基本的なものなので、第四世代のブラウザならたいていこの機能を利用できるはずです。現在は Internet Explorer 6 と Mozilla 1.x のみでテストしています。

If $cfg['QueryHistoryDB'] が TRUE の場合、ユーザのクエリはすべてテーブルに記録されます。ただし、このテーブルはユーザが作成する必要があります(→ $cfg['Servers'][$i]['history'])。FALSE の場合、フォームにはすべてのクエリが残りますが、保存されるのはウインドウが開いている間のみです。

JavaScript ベースのクエリウインドウを使うと、新しいテーブル/データベースをクリックして表示させるとかならず内容が更新されるようになります。また、クエリを利用したあとで「SQL の修正(Edit SQL)」をクリックするとフォーカスが移ります。クエリウインドウの更新を抑制することもできます。クエリ textarea の下にある「別ウインドウからのクエリの上書きを禁止する(Do not overwrite this query from outside the window)」というチェックボックスをチェックすると、テーブル/データベースをバックグラウンドで表示できます。textarea の中身はなくなりません。これは最初に別のテーブルを調べなければならないクエリを作成するときには特に便利です。このチェックボックスは textarea の内容を修正すると自動的にチェックされます。内容は修正してしまったけれどもやっぱりクエリウインドウを更新させたくなった場合は、チェックを外してください。

$cfg['QueryHistoryDB'] が TRUE の場合、保存する履歴アイテムの数は $cfg['QueryHistoryMax'] で指定できます。

また、クエリウインドウは機能をまとめるためにカスタマイズ可能なタブ形式になっています。$cfg['QueryWindowDefTab'] 変数を使うと、クエリウインドウを開いたときに表示されるデフォルトタブを指定できます。設定可能な値は「sql」、「files」、「history」、「full」です。
$cfg['BrowseMIME'] boolean
MIME 変換機能を有効にします。
$cfg['MaxExactCount'] integer
どの程度大きなテーブルまで SELECT COUNT で正確な行数を取得するかを指定します。概算の行数がこの値より小さい場合は SELECT COUNT が使われますが、そうでない場合、SHOW TABLE STATUS が返す値のみが使われます。この値の影響を受けるのは現在 InnoDB テーブルのみです。
$cfg['WYSIWYG-PDF'] boolean
WYSIWYG 修正コントロールを利用して、PDF ページの要素を簡単に配置できるようにします。PDF 要素の x/y 座標を修正するページで「スクラッチボードを有効/無効にする(toggle scratchboard)」ボタンをクリックすると、スクラッチボードが有効になります。このスクラッチボードにはすべての要素が配置されています。要素をクリックすると、あらかじめ定義されている領域のなかを移動できます。x/y 座標は動的に更新されます。同様に、入力フィールドに直接新しい座標を入力しておくと、入力フィールドからカーソルが移動したときにスクラッチボード内の要素も新しい位置に移動します。
新しい位置を保存するには、テーブルの下に「OK」ボタンをクリックする必要があります。新しい要素を配置する場合は、まず要素のテーブルに追加してください。新しい要素をドラッグできるようになります。
用紙の大きさや向きを変えると、スクラッチボードの大きさも変わります。これは下のドロップダウンフィールドを変更するだけで行えます。スクラッチボードの大きさは自動的に変わります。要素の現在位置は変わりません。
要素が範囲外に出てしまった場合、用紙の大きさを拡大するか、「リセット(reset)」ボタンをクリックして、すべての要素を縦一列に並べてください。
注意: このコントロールは IE6 や Mozilla のような最近のブラウザを使わないと動作しません。ドラッグ&ドロップスクリプトの基本機能は非常に限定されたライセンスのもと、www.youngpup.net のご厚意でお借りしたものです。
$cfg['NaturalOrder'] boolean
データベースやテーブルの名前を自然な順番でソートします(たとえば、t1、t2、t10)。いまのところ左パネル(ライトモード)とデータベース画面のテーブル一覧に実装されています。
$cfg['ShowHttpHostTitle'] boolean
HTTP ホスト名をウインドウのタイトルバーに表示します。
$cfg['SetHttpHostTitle'] string
$cfg['ShowHttpHostTitle']TRUE の場合、本当の HTTP ホスト名が表示されますが、ここで別名を指定することもできます。
$cfg['ErrorIconic'] boolean
警告やエラー、通知を表示する際にアイコンを利用します。
$cfg['MainPageIconic'] boolean
メインページのリストやメニュータブにアイコンを利用します。
$cfg['ReplaceHelpImg'] boolean
「ドキュメント(Documentation)」メッセージのかわりにヘルプボタンを表示します。
$cfg['ThemePath'] string
テーママネージャが有効な場合、すべてのテーマが収録されているサブディレクトリのパスとして利用します。
$cfg['ThemeManager'] boolean
ユーザがテーマを選択できるようにします。FAQ 2.7 をご覧ください。
$cfg['ThemeDefault'] string
デフォルトテーマ(cfg['ThemePath'] の下にあるサブディレクトリのひとつ)です。
$cfg['ThemePerServer'] boolean
サーバごとに別々のテーマを許可するかどうか。
$cfg['DefaultQueryTable'] string
$cfg['DefaultQueryDatabase'] string
ユーザが何も指定しなかったときにクエリボックスに表示されるデフォルトのクエリ。%d はデータベース名、%t はテーブル名、%f はコンマで区切られたフィールド名の一覧になります。なお、%t と %f が適用されるのは $cfg['DefaultQueryTable'] に対してのみです。
$cfg['SQP']['fmtType'] string [html|none]
新しい SQL パーサの主な用途は SQL クエリを読みやすくすることです。デフォルトでは HTML を使ってクエリを整形しますが、この変数を 「none」 にするとこの機能を無効にできます。
$cfg['SQP']['fmtInd'] float
$cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex]
SQL クエリを読みやすくするために、場合によってはブラケット( [ ] )に囲まれたクエリの一部がインデントされるのですが、$cfg['SQP']['fmtInd'] を変更すると、このインデントの量を変更できます。
それと似た $cfg['SQP']['fmtIndUnit'] の方は、指定したインデント量の単位を指定します。スタイルシートで利用するものです。
$cfg['SQP']['fmtColor'] string のペアの array
SQL クエリを読みやすくするために各要素につける色の定義に利用します。色を定義するペア文字列の書式は次の通りです。
クラス名 => [HTML の色コード | 空の文字列]
空の文字列を指定した場合、そのクラスの色指定は無視されてスタイルシートに反映されません。クラス名は変えないでください。変えるのは色をあらわす文字列のみです。
クラス名:
$cfg['SQLValidator']['use'] boolean
phpMyAdmin は Mimer SQL Validator サービスをサポートするようになりました。これは当初 Slashdot で公開されていたものです。
このサービスをお使いのシステムに設定する方法については、FAQ 6.14 をご覧ください。
$cfg['SQLValidator']['username'] string
$cfg['SQLValidator']['password'] string
SOAP サービスを使うと anonymous (匿名)ユーザでもパスワードによらずログインできるため、デフォルトではそのようになっていますが、SQL Validator のアカウントがあるなら、ログイン情報をここに記入すると、匿名でログインするかわりにその情報でログインするようになります。
$cfg['DBG']['enable'] boolean
開発者限定!
phpMyAdmin のデバッグ用に DBG エクステンションを有効にします。コードを解析するのに必要となります。
お使いのシステムに設定する方法については、開発者向けの情報セクションをご覧ください。
$cfg['DBG']['profile']['enable'] boolean
開発者限定!
phpMyAdmin の解析サポートを有効にします。メインウインドウに表示される各ページ末にデータの塊やそのページの解析情報を付け加えます。
この機能を正常に動作させるためには最大実行時間を増やす必要があるかもしれません。
$cfg['DBG']['profile']['threshold'] float(ミリ秒単位)
開発者限定!
解析情報を表示するときに、それぞれの解析データを表示するかどうかを決める閾値が入ります。平均処理時間がこの閾値を越える場合は表示し、そうでなければ表示しません。閾値はミリ秒であらわします。ほとんどの場合、この値を修正する必要はありません。
$cfg['ColumnTypes'] array
MySQL のカラム種別としてとりうるすべての値が入ります。ほとんどの場合、この値を修正する必要はありません。
$cfg['AttributeTypes'] array
フィールド属性としてとりうる値が入ります。ほとんどの場合、この値を修正する必要はありません。
$cfg['Functions'] array
MySQL がサポートする関数のリストです。ほとんどの場合、この値を修正する必要はありません。
$cfg['RestrictColumnTypes'] array
カラム種別と、カラムの内容の表示方法を変えるための関数を結びつけるメタ種別との対応表です。ほとんどの場合、この値を修正する必要はありません。
$cfg['RestrictFunctions'] array
$cfg['RestrictColumnTypes'] で定義されたカラムのメタ種別が利用する関数一覧です。ほとんどの場合、この値を修正する必要はありません。
$cfg['DefaultFunctions'] array
行を挿入/修正するときにデフォルトで選択される関数です。この関数は $cfg['RestrictColumnTypes'] のメタ種別ごとに定義します。first_timestamp については、テーブル内の最初の timestamp カラムに適用されます。
$cfg['NumOperators'] array
数値や日付フィールドの検索に利用できる演算子です。
$cfg['TextOperators'] array
文字フィールドの検索に利用できる演算子です。 なお、デフォルトは LIKE %...% ではなく LIKE としてあります。これはテーブルが巨大な場合に不用意にパフォーマンスの問題を起こさないようにするためです。
$cfg['EnumOperators'] array
列挙(enum)フィールドの検索に利用できる演算子です。
$cfg['NullOperators'] array
フィールドがヌル(null)になりうるときに利用できる追加の検索用演算子です。

変換機能

はじめに  -  使い方  -  ファイル構造


[1. はじめに]

変換機能を有効にするには、column_info テーブルと、適切なディレクティブを設定する必要があります。手順については「設定」セクションをご覧ください。


フィールドごとに別々の変換機能を適用できます。変換機能は各フィールドの内容を取得してから、選択された機能に定義されている規則に従って変換を行うためです。


たとえば、ファイル名を入れる「filename」というフィールドがあるとします。ふつう phpMyAdmin ではこのファイル名しか表示されませんが、変換機能を使うと、このファイル名を HTML リンクに変換できます。phpMyAdmin システムの内部でそのフィールドのリンクをクリックすると、新しいブラウザウインドウにそのファイルが表示されます。変換オプションを使えば、その文字列の前後に付け加える文字列や、出力を保存する形式も指定できます。


利用できるすべての変換機能とそのオプションについての概略は <お使いのホスト>/<インストールしたディレクトリ>/libraries/transformations/overview.php をご覧ください。


変換機能の効果的な使い方のチュートリアルについては、phpMyAdmin のオフィシャルホームページの Link セクションをご覧ください。


[2. 使い方]

tbl_properties.inc.php ページに行きます(テーブルの「プロパティ(properties)」リンクをクリックしていけばたどり着きます)。「修正(Change)」(あるいは修正アイコン)をクリックすると、行末に新しいフィールドが 3 つ表示されます。それぞれ「MIME タイプ(MIME-type)」、「ブラウザ変換(Browser transformation)」、「変換オプション(Transformation options)」という名がついています。



[3. ファイル構造]

各 MIME タイプ用の変換機能の定義はすべて「libraries/transformations/」ディレクトリのそれぞれのファイルにまとめられています。


変換機能がファイルに保管されているのは、カスタマイズや新しい変換機能の追加を容易にするためです。


ユーザが独自の MIME タイプを入力することはできません。変換機能がいつでも確実に動作するのはそのおかげです。ある変換機能を未知の MIME タイプに適用しようとしても無駄です。変換関数は処理の方法を知らないためです。


ただし、MIME タイプを空欄にしてグローバルな変換機能を利用することはできます。グローバルな変換機能は多くの MIME タイプで動作することが期待できます。本来の対象とは違う MIME タイプの変換機能を利用することもできますが、オプションの使い方や、その変換機能がフィールドの値をどうするかにはご注意ください。


global.inc.php」という基本ファイルは、どんな変換機能からでもインクルードできます。これはいくつかの基本的な関数を提供してくれます。


ファイル名には 5 通りの可能性があります:

  1. MIME タイプ+サブタイプ変換機能:

    [MIME タイプ]_[サブタイプ]__[機能名].inc.php

    MIME タイプとサブタイプが「_」で区切られていることにご注意ください(「_」はMIME タイプやサブタイプの名前には含まれないことになっています)。また、変換機能/ファイル名に含められる文字は、ファイルシステムや PHP 関数の命名規約上問題を起こさない文字のみです。

    この変換関数は「PMA_transform_[MIME タイプ]_[サブタイプ]__[機能名]()」で呼び出せます。

    例:

    text_html__formatted.inc.php
    PMA_transform_text_html__formatted()
  2. MIME タイプ(サブタイプなし)変換機能:

    [MIME タイプ]__[機能名].inc.php

    1 文字の「_」がないことにご注意ください。 変換機能/ファイル名に含められる文字は、ファイルシステムや PHP 関数の命名規約上問題を起こさない文字のみです。

    この変換関数は「PMA_transform_[MIME タイプ]__[機能名]()」で呼び出せます。

    例:

    text__formatted.inc.php
    PMA_transform_text__formatted()
  3. MIME タイプ+サブタイプ。特定な変換関数はなし

    [MIME タイプ]_[サブタイプ].inc.php

    ファイル名に「__」が含まれないことにご注意ください。また、ファイル名にはファイルシステム上問題を起こす特殊文字は使わないでください。

    このファイルそのものには変換関数は定義しません。

    例:

    text_plain.inc.php
    (関数はなし)
  4. MIME タイプ(サブタイプなし)。特定の変換関数はなし

    [mimetype].inc.php

    ファイル名に「_」の文字が含まれないことにご注意ください。また、ファイル名にはファイルシステム上問題を起こす特殊文字は使わないでください。

    このファイルそのものには変換関数は定義しません。

    例:

    text.inc.php
    (関数はなし)
  5. グローバル変換関数。特定の MIME タイプはなし

    global__[機能名].inc.php

    変換関数は「PMA_transform_global__[機能名]()」で呼び出せます。

    例:

    global__formatted
    PMA_transform_global__formatted()

このように、一般的に MIME タイプとサブタイプは「_」で区切り、「__」は変換関数名を示します。


ファイル名に「__」を含まないものはいずれも有効な変換関数としてドロップダウンに表示されることはありません。


独自の変換関数を加えるには libraries/transformations/TEMPLATE ファイルを、変換関数なしで MIME タイプを追加するには libraries/transformations/TEMPLATE_MIMETYPE ファイルをご覧ください。また、言語ファイルには関数の機能の紹介も書いてください。各関数ごとに $strTransformation_[.inc.php 抜きのファイル名] が存在している必要があります。


テンプレート生成ツールを使って新しい関数と言語ファイルのエントリを生成することもできます。


新しい変換関数を作成する場合は libraries/transformations/template_generator.sh を、新しい、空の MIME タイプを作成する場合は libraries/transformations/template_generator_mimetype.sh をご覧ください。


変換関数には常に 3 つの変数が渡されます:

  1. $buffer - カラム内のテキストが入ります。これが変換するテキストになります。
  2. $options - ユーザから変換関数に渡されたオプションが配列で入ります。
  3. $meta - カラムのフィールド情報を持つオブジェクトが入ります。データは mysql_fetch_field() 関数の出力から抽出されます。そのため、この関数の マニュアルページ で説明されているオブジェクトのプロパティすべてが利用できますし、unsigned/zerofill/not_null/... といったプロパティによってフィールドを変換できます。
    $meta->mimetype 変数にはそのフィールドの元の MIME タイプ(「text/plain」「image/jpeg」など)が入ります。

FAQ - よくある質問

サーバ  -  設定  -  制限  -  マルチユーザ  -  ブラウザ  -  使い方のコツ  -  プロジェクト  -  セキュリティ


phpMyAdmin の機能やインタフェースの詳細については phpMyAdmin のオフィシャルホームページにある Link セクション をご覧ください。


[1. サーバ]

[1.1] PHP 4+ を走らせているのですが、特定のアクションが要求されるたびにサーバがクラッシュしたり、ブラウザに空白のページや暗号のような文字だらけのページが表示されます。どうしたらよいのでしょう。

PHP の出力バッファリングや圧縮にはいくつか既知のバグがあります。
config.inc.php ファイルの $cfg['OBGzip'] ディレクティブを FALSE に、php の設定ファイルの zlib.output_compression ディレクティブを Off にしてみてください。
また、私たちが把握している限り、そういった問題は PHP 4.2.0 のプレリリース版(PHP 4.2.0 RC1 〜 RC4 でテストしました)と MS Internet Explorer を組み合わせたときに起こります。PHP 4.2.0 のリリースバージョンにアップグレードしてください。

[1.2] phpMyAdmin を使うと Apache サーバがクラッシュします。

まず、Apache(と、もしかすると MySQL)の最新版を使うようにしてみてください。
また、出力バッファリングに関する PHP のバグについて説明している FAQ 1.1 もご覧ください。
それでもサーバがクラッシュするようなら、Apache の各種サポートグループに援助を求めてください。

[1.3] 「クッキー」認証モードの phpMyAdmin を Apache 2+ モジュールとしてロードした PHP 4.2.0 ないし 4.2.1 上で走らせているのですが、スクリプトに入れません。かならずログイン画面が表示されます。

これは PHP 側の既知のバグです(→ バグレポート)。出典は PHP のオフィシャルバグデータベースです。これは phpMyAdmin 側では修正しようがありませんので、放ってあります。この先も修正しません。

[1.4] phpMyAdmin を IIS 上で使うと、「The specified CGI application misbehaved by not returning a complete set of HTTP headers...(指定した CGI にはエラーがあります。HTTP ヘッダが不完全です)」というエラーメッセージが表示されます。

php の配布ファイルに入っている install.txt を読み忘れたのでしょう。こちらのバグレポートの最後のメッセージをご覧ください。出典は PHP のオフィシャルバグデータベースです。

[1.5] phpMyAdmin を IIS 上で使うと、HTTP (アドバンスト)認証モードのときにクラッシュしたり、エラーメッセージがたくさん表示されます。

これは PHP の ISAPI フィルタの既知の問題です(ISAPI フィルタはあまり安定していないのです)。HTTP 認証モードではなく、クッキー認証モードをお使いください。

[1.6] PWS 上で phpMyAdmin を使えません。何も表示されません!

PWS のバグのようです。Filippo Simoncini が回避策を見つけています(現時点ではこれ以上の対応策はありません)。header.inc.phpheader_printview.inc.phpindex.phpleft.phplibraries/common.lib.phpDOCTYPE 宣言(2 行)を削除するか、コメントにしてください。

[1.7] どうすればダンプや CSV エクスポートを GZip ないし Bzip 圧縮できるのでしょう。動いていないようなんですが。

これらの機能はプラットフォーム(Unix か Windows か、セーフモードかどうか、など)からの独立性を高めるために PHP の gzencode()bzcompress() 関数をベースにしています。そのため、PHP4  ≧ 4.0.4 と Zlib/Bzip2 サポート(--with-zlib--with-bz2)が必要です。
また、phpMyAdmin を PHP 4.2.0 のプレリリース版上で走らせているときにダンプを MS Internet Explorer でダウンロードしようとすると PHP がクラッシュするという問題がありました。この場合は PHP 4.2.0 をリリース版に切り替えてください。

[1.8] テーブルにテキストファイルを挿入できません。セーフモードになっているというエラーが出ます。

アップロードしたファイルは php.iniupload_tmp_dir 変数に定義されている「アップロードディレクトリ(upload dir)」に保存されます(通常システムデフォルトは /tmp になっています)。
Apache サーバをセーフモードで走らせる場合は次のようにセットアップすることをおすすめします。こうすると、ファイルのアップロードを可能にしながらある程度のセキュリティも確保できます:

[1.9] ファイルのアップロードに困っています。私のシステムでは総じてファイルアップロードがうまくいかないのですが、アップロードしたファイルの 1 行目に Content-Type: ヘッダがついてしまいます。

本当は phpMyAdmin 関連の問題ではなく、RedHat 7.0 の問題なのですが、お使いのシステムは RedHat 7.0 で、PHP RPM を php-4.0.4pl1-3.i386.rpm にアップデートしたのではありませんか?
そうだとしたら、問題はこのパッケージが抱えている深刻なバグのせいです。このバグはずいぶん前に修正されたはずなのですが(2001-01-28:詳細については PHP のバグ追跡システム をご覧ください)、困ったことに、修正後もバグ入りのパッケージがまだ出回っているのです(詳細については RedHat の BugZilla をご覧ください)。
ですから、修正済みのパッケージ(4.0.4pl1-9) をダウンロードしていただければ問題は解決します。
また、この修正版はファイルアップロードの際の \r\n 問題も解決してくれます!

[1.10] セキュアサーバ上で走らせている phpMyAdmin のファイルアップロードで困っています。ブラウザは Internet Explorer、サーバは Apache を使っています。

phpWizard フォーラムで「Rob M」が勧めていたように、httpd.conf に次の行を追加してください:
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
こうすると、Internet Explorer と SSL にまつわる多くの問題が解決されるようです。

[1.11] クエリボックスからファイルをアップロードすると「open_basedir 制限(open_basedir restriction)」が出ます。

バージョン 2.2.4 以降、phpMyAdmin はサーバの open_basedir 制限をサポートしています。この制限下でもカレントディレクトリ(「.」)にあるファイルが開けるようなら、必要なのは phpMyAdmin をインストールしたディレクトリに「一時」ディレクトリを作って、パーミッションを 777 にし、phpMyAdmin のディレクトリと同じオーナーにすることだけです。アップロードしたファイルはそこに移され、SQL コマンドの実行が終わったら削除されます。

[1.12] MySQL のルートパスワードをなくしてしまいました。どうしたらよいのでしょう。

MySQL のマニュアルにパーミッションをリセットする方法が説明されています。

[1.13] ブックマークを実行しようとすると「SQL クエリがありません(No SQL query)」というエラーが出ます。

PHP が upload_tmp_dir を読み書きできるようになっていないと、アップロードしたクエリにはアクセスできません。

[1.14] 適当なテキストエリアからクエリを送信すると「SQL クエリがありません(No SQL query)」というエラーが出ます。

PHP の設定ファイルの post_max_size ディレクティブをチェックして、値を増やしてみてください。

[1.15] mysql.user というフィールド名のことで困っています。

MySQL の古いバージョンでは UserPassword フィールドが userpassword という名前だったせいです。フィールド名を現在の標準にあわせて修正してください。

[1.16] (メモリ、http、タイムアウトのせいで)大きなダンプファイルをアップロードできません。

バージョン 2.7.0 以降はインポートエンジンが書き直されたため、この問題は起こらないはずです。可能であればお使いの phpMyAdmin を最新のバージョンにアップグレードして新しいインポート機能をご利用ください。

まずは php.ini 設定ファイルの upload_max_filesizememory_limitpost_max_size の値をチェックしてください(あるいはプロバイダにチェックしてもらってください)。この 3 つの設定はいずれも PHP 経由で送信/取り扱いできるデータサイズの上限を決めるものです。また、あるユーザによると、post_max_size と memory_limit も upload_max_filesize より大きい必要があるそうです。

アップロードファイルが大きすぎる、あるいはホスティングしてもらっているプロバイダが設定を変えたがらない場合にはいくつかの対策があります。

[1.17] phpMyAdmin をサポートしている MySQL のバージョンは?

3.23.32 から 5.0 までの全バージョン(4.1.0 と 4.1.1 を除く)で完全にサポートされていますが、ご注意ください。MySQL のバージョンが古くなればなるほど、多くの制限に直面することになります。
phpMyAdmin が MySQL サーバに接続するときには、古典的な MySQL エクステンション だけでなく、php 5.0 で利用できるようになった 改良版 MySQL エクステンション(MySQLi) も利用できます。
いずれにしても、どちらのエクステンションの開発陣も、MySQL 4.0 以下には昔ながらのエクステンションを、MySQL 4.1 以降には MySQLi を利用するよう推奨しています。
php をコンパイルするときには、お好みの MySQL エクステンションを少なくともマイナーバージョンまで同じ MySQL クライアントライブラリに手作業でリンクさせることを強く推奨します。別の配布ファイルにバンドルされていたものはやや古くなっているために問題を起こすことがあるためです(FAQ 1.17a もご覧ください)。
MySQL 5.1 はまだサポートされていません。

[1.17a] MySQL サーバに接続できません。かならず「Client does not support authentication protocol requested by server; consider upgrading MySQL client(サーバが要求する認証プロトコルをクライアントがサポートしていません。MySQL クライアントのアップグレードをご検討ください)」というというエラーメッセージが返ってきます。

古い MySQL クライアントライブラリで MySQL にアクセスしようとしたためです。MySQL クライアントライブラリのバージョンは phpinfo() の出力でチェックできます。一般に、少なくともサーバと同じマイナーバージョンのものを使ってください。- FAQ 1.17 に述べた通りです。

この問題は一般的に 4.1 以上のバージョンの MySQL で起こります。MySQL の認証ハッシュが変わったのに、お使いの PHP が古い方法を試そうとするためです。この問題を適切に解決するには、mysqli エクステンションと、お使いの MySQL のバージョンにあわせた適切なクライアントライブラリを利用してください。選択したエクステンションは $cfg['Servers'][$i]['extension'] で指定します。詳細(といくつかの対策)については MySQL のドキュメントをご覧ください。

[1.18] lower_case_table_names を 1 にした MySQL ≦ 4.0.1 を走らせています。大文字が含まれているテーブルを新規作成したら、小文字に変わるはずなのですが、このテーブルを DROP しようとしても、MySQL が該当するファイルを見つけてくれません。

これは MySQL ≦ 4.0.1 のバグです。最低でも MySQL 4.0.2 にまでアップグレードするか、lower_case_table_names ディレクティブをオフにしてください。

[1.19] 「リレーション表示(display relations)」機能を実行できません。私が使っているフォントを認識してくれないようです。

私たちがこの機能を実現するのに利用している「FPDF」ライブラリは、いくつかの特別なファイルがないとフォントを利用できません。
その特別なファイルの作り方は FPDF マニュアル をご覧ください。

[1.20] 「cannot load MySQL extension, please check PHP Configuration(MySQL エクステンションをロードできません。PHP の設定をチェックしてください)」というエラーが出ます。

PHP が MySQL サーバに接続する際には「MySQL エクステンション」という MySQL の関数セットを必要とします。このエクステンションは PHP の配布ファイルに含まれている(コンパイルで組み込まれている)こともありますが、そうでない場合、動的にロードする必要があります。エクステンション名はたぶん mysql.sophp_mysql.dll のはずですが、phpMyAdmin はこのエクステンションをロードしようとして失敗しているわけです。

ふつう、この問題は「PHP-MySQL」とかなんとかという名前のソフトウェアパッケージをインストールすれば解決します。

[1.21] CGI 版の PHP を Unix 環境で走らせているのですが、クッキー認証を使ったログインができません。

php.inimysql.max_links を 1 より大きな値にしてください。

[1.22] 「テキストファイルの場所(Location of text file)」フィールドが見つからないのでアップロードできません。

いちばんありがちな理由は、php.inifile_uploads パラメータが「on」になっていないことです。

[1.23] MySQL を Win32 マシンで走らせているのですが、新規テーブルを作成するたびにテーブル名とフィールド名が小文字に変わってしまいます!

これは lower_case_table_names という MySQL のディレクティブが Win32 版のデフォルトでは 1(ON)になっているためです。この動作はこのディレクティブを 0(OFF)にするだけで変えられます:
Windows ディレクトリにあるはずの my.ini ファイルを編集して、次の行を [mysqld] グループに追加してください:
set-variable = lower_case_table_names=0
次に、そのファイルを保存して、MySQL サービスを再起動します。このディレクティブの値は次のクエリでいつでもチェックできます。
SHOW VARIABLES LIKE 'lower_case_table_names';

[1.24] クエリの一部の文字が切り捨てられたり、ランダムな文字が付け加わったりしてしまいます。PHP は 4.2.3 です。

これは PHP 4.2.3 のバグ です。

[1.25] Windows XP で Apache に mod_gzip-1.3.26.1a を組み込んで走らせているのですが、SQL クエリを実行したときに変数が定義されていないといった問題が出ます。

Jose Fandos からのヒント:httpd.conf に下記の行があったら、このようにコメントにしてください:
# mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"
このバージョンの mod_gzip on Apache(Windows)には PHP スクリプトの扱いに問題があるのです。もちろん Apache を再起動する必要があります。

[1.26] phpMyAdmin を IIS のドキュメントルートにインストールしたところなのですが、phpMyAdmin を実行しようとすると「No input file specified(入力ファイルが指定されていません)」というエラーが出ます。

これはパーミッションの問題です。phpmyadmin フォルダを右クリックして、プロパティを選んでください。セキュリティタブを開き、「追加(Add)」をクリックして、一覧から「IUSR_machine」を選択します。このユーザにパーミッションを設定すれば動くはずです。

[1.27] 巨大なページ(たとえばテーブルがたくさんある db_details_structure.php )を表示したいのに空白ページが表示されます。

これは PHP のバグ です。GZIP 出力バッファリングが有効になっていると起こりますので、バッファリングを(config.inc.php$cfg['OBGzip'] = FALSEとして)オフにすれば動くはずです。このバグは PHP 5.0.0 で修正されるはずです。

[1.28] MySQL サーバがときどきクエリを拒否して「Errorcode: 13」というメッセージを返してきます。どういうことでしょうか。

これは MySQL のバグです。lower_case_table_names が 1 になっているのにデータベース/テーブル名に大文字が含まれていると起こることがあります。修正するには、このディレクティブをオフにして、すべてのデータベース/テーブル名を小文字に変換してから、再度オンにしてください。また、MySQL 3.23.56 / 4.0.11-gamma からはバグフィックスも用意されています。

[1.29] テーブルを作成したりフィールドを修正したりすると、エラーが出てフィールドが複製されてしまいます。

Apache の設定によっては PHP が .php ファイルの解釈を間違ってしまうことがあります。

この問題が起こるのは、下記のように 2 組の異なった(矛盾をきたす)ディレクティブを利用しているためです:

SetOutputFilter PHP
SetInputFilter PHP
&
AddType application/x-httpd-php .php

私たちが見た例の場合、一方のディレクティブは /etc/httpd/conf/httpd.conf に、もう一方のディレクティブは /etc/httpd/conf/addon-modules/php.conf に入っていました。
AddType を使う方がおすすめですので、最初のディレクティブはコメントアウトして、Apache を再起動してください:

#SetOutputFilter PHP
#SetInputFilter PHP

[1.30] 「left.php: Missing hash(ハッシュがありません)」というエラーが出ます。

この問題はサーバが Turck MMCache を走らせていると起こることがわかっていますが、MMCache をバージョン 2.3.21 にアップグレードすれば解決します。

[1.31] phpMyAdmin は php5 をサポートしているのですか。

はい。
ただし、phpMyAdmin は php4 への後方互換性を守る必要があるため、error_reporting の設定で E_STRICT を有効にしてしまうと動かなくなります。

[1.32] IIS でも HTTP 認証を利用できますか。

はい。以下の手順は phpMyAdmin 2.6.1 と、IIS 5.1 の ISAPI モードで動かした PHP 4.3.9 で確認しました。

  1. お使いの php.ini ファイルに cgi.rfc2616_headers = 0 という設定を加えます。
  2. Web サイトの「プロパティ」 -> 「ディレクトリセキュリティ」タブ -> 「匿名アクセスおよび認証コントロール」の「編集」で表示されるダイアログボックスで、匿名アクセスのチェックボックスをチェック、それ以外のチェックボックスのチェックを外します(つまり、基本認証, 統合 Windows 認証、有効になっている場合はダイジェスト認証のチェックを外します)。OKをクリックします。
  3. 「カスタムエラー」タブで、401;1 から 401;5 までを選択し、「既定値に設定」ボタンをクリックします。

[1.33] 64 ビットのシステムで PHP 5.0.4 を走らせているときの mysqli エクステンションに問題がありませんか?

はい。この問題は phpMyAdmin にも影響を与えますので(「Call to undefined function pma_reloadnavigation(未定義の関数 pma_reloadnavigation の呼び出し)」)、PHP を新しいバージョンにアップグレードしてください。

[1.34] データベースやテーブルのページに直接アクセスできますか?

はい。そのままでも http://server/phpMyAdmin/index.php?db=database&table=table のような URL は利用できますが、http://server/phpMyAdmin/database/table のような URL を使いたい場合はいくつかの設定をする必要があります。以下の例は Apache ウェブサーバにしか適用できませんが、まずはグローバルな設定でいくつかの機能を有効にしてあるか確認してください。phpMyAdmin をインストールしたディレクトリについては Options FollowSymLinksAllowOverride FileInfo が有効になっている必要がありますし、mod_rewrite を有効にしておく必要もあります。あとは、以下のような .htaccess ファイルを phpMyAdmin をインストールした場所のルートフォルダに作成するだけです(例示したディレクトリ名の変更を忘れないでくださいね(^^) ):

RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]

[2. 設定]

[2.1] 「Warning: Cannot add header information - headers already sent by ...(警告:ヘッダ情報を追加できません。ヘッダは送信済みです)」というエラーメッセージが表示されます。何がいけないのでしょう。

config.inc.php ファイルを修正して、先頭の <?php タグの前や末尾の ?> の後には何も入れない(改行やスペース、文字などがない)ようにしてください。

[2.2] phpMyAdmin が MySQL に接続できません。何が悪いのでしょう。

これは PHP のセットアップに問題があるか、ユーザ名/パスワードが間違っているかです。ためしに mysql_connect を使う小さなスクリプトを書いて、動くかどうか確かめてみてください。動かないようなら、PHP をコンパイルするときに MySQL サポートを組み込んでいなかったのかもしれません。

[2.3] 「Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)...(警告:MySQL の接続に失敗しました。ソケット '/tmp/mysql.sock' (111) ではローカルの MySQL サーバに接続できません)」というエラーメッセージが表示されます。どうすればよいのでしょう。


RedHat ユーザの場合、Harald Legner がメーリングリストで次のような提案をしています:

私の RedHat-Box では、MySQL のソケットは /var/lib/mysql/mysql.sock になっています。 php.ini に次のような行がありますから
    mysql.default_socket = /tmp/mysql.sock
これを次のように変更してください。
    mysql.default_socket = /var/lib/mysql/mysql.sock
それから apache を再起動すれば動くはずです。

こちらは Brad Ummer が提案した対策です:

また、MySQL 文書の該当セクションもご覧ください。

[2.4] phpMyAdmin を実行しようとしているのですがブラウザに何も表示されません。どうしたらよいのでしょう。

phpMyAdmin の設定ファイルで $cfg['OBGZip'] ディレクティブを FALSE にしてみてください。それでうまくいくことがあります。
また、PHP のバージョンを確かめてください。「4.0b...」という文字が含まれている場合はベータ版の PHP が走っているということですが、これはあまりよいことではありませんので、ベータ版でないものにアップグレードしてください。

[2.5] レコードを挿入/修正しようとしたり、データベースやテーブルを削除しようとするたびに404(ページが見つかりません)エラーが表示されます。また、HTTP ないしクッキー認証をしているときはログインしなおすように求められます。何が悪いのでしょう。

phpMyAdmin 設定ファイルの $cfg['PmaAbsoluteUri'] ディレクティブの値をチェックしてください。

[2.6] localhost にポート転送しているホストの MySQL サーバにアクセスしようとすると、「Access denied for user: 'root@localhost'(Using password: YES)('root@localhost'ユーザのアクセスは拒否されました。パスワードは利用しています)」というエラーが出ます。

localhost のポートを利用して、ポート転送で別のホストにリダイレクトすると、MySQL は期待通りに localhost を解決してくれません。
Erik Wasser は次のように説明しています:解決法は次の通りです:ホストが「localhost」の場合、MySQLは(コマンドラインツールの「mysql」もそうですが)高速化のためにかならずソケットを利用して接続しようとします。これは、このようにポート転送する設定では動作しません。
ホスト名を「127.0.0.1」にすれば万事解決。MySQL は TCP 接続を利用するようになります。

[2.7] テーマの使い方と作り方

テーマは $cfg['ThemePath']$cfg['ThemeManager']$cfg['ThemeDefault'] で設定します。

$cfg['ThemePath'] の下の「original」ディレクトリやその下位構造は削除しないでください。これは phpMyAdmin が利用するシステムテーマです。「original」にはすべての画像やスタイルが格納されています。これは後方互換性のためと、画像や css ファイルが含まれていないすべてのテーマのためです。

$cfg['ThemeManager'] が有効の場合、メインページで好みのテーマを選択できます。選択したテーマはクッキーに保管されます。

テーマの作り方:


テーマディレクトリの info.inc.php というファイルにはテーマの長い名前、テーマの世代、テーマのバージョンを入れます。このバージョンと世代は 1 から始まる数字です。また、phpMyAdmin のバージョンと直接の関係はありません。同じ世代のテーマは後方互換性があるようにしてください。つまり、バージョン 2 のテーマはバージョン 1 が必要な phpMyAdmin でもうまくいくようにしてください。世代の異なるテーマは互換性がありません。

独自のシンボルやボタンを使いたいのでなければ、「your_theme_name」から「img」ディレクトリを削除してください。デフォルトの(システムテーマである「original」の)アイコンやボタンが使われます。

[2.8] 「Missing parameters(パラメータが抜けています)」というエラーが出ます。どうしたらよいのでしょう?

確認すべき点はいくつかあります:


[3. 既知の制限]

[3.1] HTTP 認証を使っているときにログアウトすると、同じニックネームでは再ログインできません。

これは phpMyAdmin が利用している認証のメカニズム(プロトコル)による制限です。この問題を回避するには、開いているブラウザのウインドウを一度すべて閉じてから、phpMyAdmin に戻ってください。再ログインできるようになっているはずです。

[3.2] 大きなテーブルを圧縮モードでダンプするとメモリ制限のエラーや時間制限のエラーが出ます。

圧縮されたダンプがメモリ上に生成されるのが php のメモリ制限にひっかかる原因です。GZip/BZip2 エクスポートについては 2.5.4 以降 $cfg['CompressOnFly'] を使うとこの問題を克服できます(デフォルトで有効になっています)。Zip エクスポートはオン・ザ・フライ生成できませんので、大きめのダンプの Zip ファイルが必要な場合、別の方法をとる必要があります。

[3.3] InnoDB テーブルでテーブルをリネームしたり定義を変更すると外部キーのリレーションが切れます。

これは InnoDB のバグのようです(MySQL 3.23.50 で修正済み?)。

[3.4] MySQL サーバの配布ファイルにバンドルされてきた mysqldump ツールで作成したダンプをインポートできません。

この問題は mysqldump が下記のような無効なコメントを作成するためです:

-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54

このコードで無効なのは - を並べた区切り線の部分です。この区切り線は、mysqldump で作成したダンプにはかならず一度登場します。このダンプを利用するには、ダンプを修正して MySQL で有効な形にする必要があります。つまり、問題の行の先頭 2 つのハイフンのあとに空白を入れるか、問題の行の先頭に # を付け加える必要があるということです:
-- -------------------------------------------------------
または
#---------------------------------------------------------

[3.5] ネストフォルダを使うと($cfg['LeftFrameTableSeparator'])、複数の階層を持つものがおかしな表示になることがあります?!

ご注意ください。間に文字をはさまずに区切り文字を連続して使ったり、テーブル名の前後に区切り文字を使ってはいけないのです。どうしてもそうする必要があるなら、別の区切り文字(TableSeparator)を使うか、この機能を無効にすることを検討してください。

[3.6] InnoDB では現在サポートされていない機能はありますか。

リレーション表示では、別のデータベースのテーブルを選択することや、複数のインデックスフィールドを外部キーにすることがそうです。

Query-by-example(Query)では、外部テーブルから LEFT JOIN されたクエリの自動生成がそうです。

PDF スキーマ修正では、自動レイアウトがそうです。

[3.7] フィールド数の多い(100+)テーブルがあるのですが、このテーブルを表示しようとすると「Warning: unable to parse url(警告:urlを解析できません)」というエラーがたくさん出ます。どうすれば直るのでしょうか。

テーブルにプライマリキーやユニークなキーがない場合、行を特定するために長い SQL を使う必要があるのですが、それが parse_url 関数で問題を起こしているのです。解決策は、プライマリキーやユニークキーを作成することです。

[3.8] フィールドに MIME 変換機能を適用したら、(クリッカブルな)HTML フォームが使えなくなります!

phpMyAdmin が結果を表示するテーブルは(複数列削除チェックボックス用の)フォームコンテナに囲まれているため、そのなかにネストするフォームを置くことはできません。ただし、tbl_row_delete.php を対象とした親フォームのコンテナはそのまま残して、そのなかに独自の入力要素のみ加えるようにすれば、どんなフォームでもテーブルのなかに入れられます。送信用の input フィールドをカスタマイズするとフォームのデータは表示しているページに再送されますので、変換機能のなかで $HTTP_POST_VARS を有効にしてください。 変換機能の効果的な使い方のチュートリアルについては phpMyAdmin のオフィシャルホームページの Link セクションをご覧ください。

[3.9] MySQL サーバに「--sql_mode=ANSI」を適用するとエラーメッセージが出ます。

MySQL が ANSI 互換モードで走っているときは SQL の組み立て方に大きく変わる部分があります(→ http://dev.mysql.com/doc/mysql/ja/ANSI_mode.html)。とりわけ重要なのが、引用符(")が識別子をクオートする文字として解釈され、文字列をクオートする文字とはみなされなくなることです。そのため、phpMyAdmin 内部の多くの操作が無効な SQL 文になるのです。この動作には回避策がありません。この問題についての最新情報はバグレポートの #816858 に投稿されます。

[3.10] プライマリキーがないのにつづりが同じ語がある場合:SELECT の結果、同じ値を持つカラムが複数表示された場合(たとえば SELECT lastname from employees where firstname like 'A%' の結果「Smith」という値が 2 つ表示された場合)、修正(Edit)をクリックしても意図した通りの行を修正しているのかわかりません。

テーブルにプライマリキーを設定するようにしてください。そうすると phpMyAdmin は修正/削除のリンクにプライマリキーを利用するようになります。

[3.11] InnoDB テーブルのレコード数が正しくありません。

phpMyAdmin は手軽な方法で行数を取得していますが、この方法を使うと InnoDB テーブルの場合は概数しか返ってこないのです。$cfg['MaxExactCount'] の項にはそういった結果を修正する方法が載っていますが、その方法をとると性能に深刻な影響を与えることがあります。

[3.12] MySQL 3 を使うときの phpMyAdmin の制限は?

COUNT や GROUP BY を含むクエリのレコード数は正しく計算されません。また、「SELECT * from table GROUP BY ...」のようなクエリの結果のソートにも問題があります。

[3.13] USE の後にハイフンを含むデータベース名を入力するとエラーが出ます。

私が現在の MySQL 4.1.11 の API でテストした限り、API はそのような構文の USE コマンドを認めていません。データベース名をバッククォートでくくるとうまくいきます。ただし、ややこしいことに、コマンドラインの mysql ではバッククォートが不要なのです。


[4. ISP、マルチユーザ用インストール ]

[4.1] 当方は ISP なのですが、phpMyAdmin はセントラルコピーをひとつセットアップすればよいのでしょうか。それともお客様ひとりひとりにインストールする必要があるのでしょうか。

バージョン 2.0.3 以降、phpMyAdmin はユーザ全員が使えるセントラルコピーをセットアップできるようになりました。この機能の開発にあたってはありがたいことに NetCologne GmbH 社がスポンサーになってくださいました。この機能を使うには、MySQL ユーザ管理機構が適切にセットアップされていること、phpMyAdmin は HTTP ないしクッキー認証を使うことが必要です。インストールセクションの「HTTP 認証の使い方」をご覧ください。

[4.2] phpMyAdmin を不正アクセスから守るにはどうすればよいのでしょう。

お使いのシステムによります。
外部の人がサーバにアクセスできないようになっているのであれば、ウェブサーバにバンドルされているディレクトリ保護機能を使えば十分です(たとえば、Apache なら .htaccess ファイルを利用できます)。
外部の人が telnet でサーバにアクセスできるのであれば、phpMyAdmin の HTTP 認証ないしクッキー認証機能を使った方がよいでしょう。

提案:

[4.3] /lang/libraries のファイルをインクルードできないというエラーが出ます。

php.ini をチェックしてください(あるいは、システム管理者にチェックしてもらってください)。include_path のどこかに「.」が含まれている必要があります。また、open_basedir を使う場合は「.」と「./lang」が含まれていないと正常に動作しません。

[4.4] HTTP 認証を使うとかならず「Access denied(アクセスは拒否されました)」になります。

いくつかの理由が考えられます:

[4.5] ユーザに独自のデータベースを作成させることは可能でしょうか。

2.2.5 以降、ユーザ管理ページでユーザのデータベース名にワイルドカードを入れたり(たとえば「joe%」)、特権を与えることができるようになりました。たとえば、SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、INDEX、ALTER 特権を与えれば、ユーザが自分のデータベースを作成/管理できるようになります。

[4.6] どうすればホストベースの認証の追加指定を利用できますか。

古い .htaccess ファイルに既存のルールがある場合は、それを取ってきて、「deny」「allow」「from」 の間にユーザ名を加えてください。利用できるようにインストールしてあるなら、ユーザ名にワイルドカード 「%」 を使うととても便利です。それが済んだら、あとは更新した行を $cfg['Servers'][$i]['AllowDeny']['rules'] 配列に加えるだけです。

できあいのサンプルがほしい場合は、下記の断片をお試しください。これは「root」ユーザがプライベートネットワークの IP ブロックに含まれないネットワークからログインするのを防ぐものです。
    //プライベートネットワーク以外からのログインをブロックします
    $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
    $cfg['Servers'][$i]['AllowDeny']['rules'] = array(
        'deny root from all',
        'allow root from localhost',
        'allow root from 10.0.0.0/8',
        'allow root from 1