phpMyAdmin configuration storage

投稿アップデート情報  追記(2014/7/4)

 本家のほうに書いたが,15日(水)に自鯖のアップデートをした。このときに,phpMyAdmin-3.4.1-english.zip ————> phpMyAdmin-3.4.2-english.zipにしたら,右の図1の赤丸部分のような[注意]が出るようになった。というか,ここんとこ出てたんだが,ページのリニューアルが終ってすっきりしたので目立つようになった。リンクをクリックすると図2のようなページが表示される。日本語対応版だと「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」と出るらしい。
 これ,前は「Linked Tables Infrastructure」と言ってたものとほぼおんなじものらしいが,そのころは設定してなくても,[注意]なんかでなかったよな。出てたけど気づかなかっただけかしらん。

ゴリゴリ使えるほどSQLについてわかっていないのだが,これをやっておくとリレーションやら,ブックマークやら使えるようで,今後,勉強をやっていく上には便利そうなので,[注意]を消すために努力してみた。やり方は,図2の下の方に書いてある。

以下の通り。

  1. MySQLのmy.iniを開けて,[mysqld]のグループに
    lower_case_table_names=0
    を書き加えて,MySQLを再起動。テーブル名等を小文字で作成させるため。チャンと,変更されたかどうかは,MySQLに[MySQL Command Line Client]からログインし,SHOW VARIABLES LIKE ‘lower_case_table_names’; で確認する。初めから,これが0になっているなら,この作業はいらない。
    現時点(2014.7.4)で, lower_case_table_names の値は 1 のままである。この件の元ソースは, 1.23 I’m running MySQL on a Win32 machine. Each time I create a new table the table and column names are changed to lowercase! なんだが,MySQL 5.6 については, If you are using InnoDB tables, you should set this variable to 1 on all platforms to force names to be converted to lowercase. なんて記載もあって,いろいろと悩みが尽きない。とはいえ,今のところ,デフォルトのままで問題なく動いているので,変えていない。
  2. http://exampl.com/phpmyadmin/ にアクセスし,pmaでログイン。
    当たり前だが,http://exampl.com/phpmyadmin/ にアクセスしてphpMyAdminにログインできるためには,Apacheのhttpd.confで以下の設定が済んでいなくてはいけないし,MySQLにpmaというユーザが存在しなくてはいけない。あとの作業の都合上ユーザpmaはアドミン権限。
    <IfModule alias_module>
    Alias /phpmyadmin “G:/WEB/phpmyadmin”
    </IfModule>
    <Directory “G:/WEB/phpmyadmin”>
    Order Allow,Deny
    Allow from 192.168.1.100
    </Directory>
    <Directory “G:/WEB/phpmyadmin/libraries”>
    Order Allow,Deny
    </Directory>
    上記の設定だと,http://exampl.com/phpmyadmin/ にアクセスできるのは,LAN内の192.168.1.100からアクセスした場合だけである。
  3. 図3のように configuration storage用のデータベース(phpmyadmin)をアドミン特権で作成。このデータベースにphpMyAdminのscriptフォルダ内にあるcreate_tables.sqlをインポートして,図4のようにテーブルを作成する。
  4. config.inc.phpを開けて,以下の部分を書き換え,各設定の行頭の//を削除してアンコメントする。他の部分の設定は以前のバージョンと同じでいい。
    * phpMyAdmin configuration storage settings.
    */
    /* User used to manipulate with storage */
          $cfg[‘Servers’][$i][‘controluser’] = ‘pma’;
    $cfg[‘Servers’][$i][‘controlpass’] = ‘pmaのログインパスワード’;      /* Storage database and tables */
    $cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
    $cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark’;
    $cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’;
    $cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’;
    $cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’;
    $cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’;
    $cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’;
    $cfg[‘Servers’][$i][‘history’] = ‘pma_history’;
    $cfg[‘Servers’][$i][‘tracking’] = ‘pma_tracking’;
    $cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’;
    $cfg[‘Servers’][$i][‘userconfig’] = ‘pma_userconfig’;
  5. 1度ログアウト後,再度ログインすると,図1のメッセージは消えていた。成功。

【注】 ところで,phpMyAdmin狙いのクローラはよくあるので,せめて,ディレクトリ名とエイリアス名(phpmyadmin),データベース名(phpmyadmin),ユーザ名(pma)およびテーブルの接頭辞(pma)くらいは,別のものに変えておいた方がいいと思う。そのためには,create_tables.sqlをインポートする前に,中の書き換えを行っておく必要がある。ディレクトリへのアクセス制限とかパスワードの設定とかは当然だが。
クローラ除けに関してだが,我が家の場合だと,もともとが自鯖で使うのは自分だけなので,用のないときはphpMyAdminのパスそのものを切り離している。

追記(2014/7/4):
Configuration storage(環境保管領域)について,新しい記事を書いた。セットアップに関しては,そちらを見てください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください