ローカルにphpMyAdminをセットアップ
2023-11-03 記載
概要 : phpMyAdminを5.2.1の最新版へアップデート
関連記事:MySQLとMariaDBを共存で動かす
Keyword : phpMyAdmin, httpd.conf, config.inc.php,
phpMyAdminは5.2.0をすでに入れてましたが、5.2.1が最新なので、この機会に入れ替えます。
cloudfreeのphpMyAdminのVersionも、2023.11.3現在確かめますと
バージョン情報: 5.2.1-1.el7.remi
とあり5.2.1です。
https://www.phpmyadmin.net/
より入手。(phpMyAdmin-5.2.1-all-languages.zip)
C:\pgm\phpMyAdmin に展開。
config.sample.inc.php をCopyして config.inc.php を作成。
Apache の httpd.conf の下部適当な位置に以下を記入。
Alias /phpMyAdmin "C:/pgm/phpMyAdmin/"
<Directory "C:/pgm/phpMyAdmin">
AllowOverride All
Require all granted
</Directory>
Apacheサービスの再起動をかけてから
http://localhost/phpMyAdmin/
でMySQLにログインできました。
バージョン情報: 5.2.1 (最新版)
cloudfreeと違う表示ですが、あちらはLinuxで、Remi氏のカスタム版。
しかし最新版とでるということは、phpMyAdminは自身で更新管理するようになったということかな。まぁそれは5.2.2が出ればわかります。
さてMySQLは無事に表示できましたが、MariaDBと共存させた環境でどう使うか。
config.inc.php
を編集すればよさそうです。
First server のセクションを以下のように。
/**
* First server
*/
$i++;
/* Server parameters */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['verbose'] = 'MariaDB localhost:6603';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '6603';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['user'] = 'cfsid_dbuser';
$cfg['Servers'][$i]['password'] = 'password';
$i++;
/* Server parameters */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['verbose'] = 'MySQL localhost:3306';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['user'] = 'cfsid_dbuser';
$cfg['Servers'][$i]['password'] = 'password';
※cfsid_dbuser = {cloudfree_server_id}_{database_user_account_name}
▼phpMyAdmin 日本語ドキュメント
https://docs.phpmyadmin.net/ja/latest/config.html
サーバ接続設定
注釈
https://docs.phpmyadmin.net/ja/latest/config.html#server-connection-settings
ホスト名 localhost は MySQL によって特別に扱われ、ソケットベースの接続プロトコルを使用します。 TCP/IP ネットワークを利用するには、 127.0.0.0.1 や db.example.com などの IP アドレスやホスト名を使用してください。ソケットへのパスは $cfg[‘Servers’][$i][‘socket’] で設定できます。
host にlocalhost と書くとMySQLとMariaDBが衝突してしまうのかは知らないけど、ローカル内のphpMyAdminとデータベース間のやりとりだけの設定だから、127.0.0.1 で確実にPortで区別して繋いでくれるのだからそれを採用。(しかしドキュメントのは’127.0.0.0.1’と0が一個多いよね^^?)
ログインがconfigタイプになったので、これまでときどき煩わしかったクッキーの有効期限切れからも開放されました。しかもこの設定だと
http://localhost/phpMyAdmin/
を開けば画面はすでにログイン済みでデータベースツリーペインの上部に現在のサーバーの切り替えコンボが表示されて、サクっと切り替えできます。

自宅パソコンの一人使用環境なんだから、もっと早くに [‘auth_type’] = ‘cookie’ から ‘config’ に切り替えればよかった、と思いました。
MariaDBと共存にして意識が向いたからだけど。
ちなみに何度かさわっていたらこんなエラーが。

要求処理中でのエラー
エラーテキスト:error(rejected)
ネットワーク接続が失われているようです。接続状況とサーバの状態を確認してください。
これはコンボでサーバを切り替えてのち、ほとんど触らず、すぐにまた別のサーバへと切り替えたりしたときに出るようで、普通はサーバを切り替えたら、そこで最低限の作業はするので見ることはそうないでしょう。見たとしても、おそらくデータベースツリーの一覧キャッシュを作っておくスレッドが困ってるというあたりで、無視してよさそうです。
(localhostと書かずに127.0.0.1にした影響だと思いますが)
設定でかえた箇所。
設定→ナビゲーションパネル→ナビゲーションツリー→
ツリー内項目をグループ化:チェックを外しました
※ cloudfreeのtableはcfsid_始まりに限られるので、[+]の展開操作は省きたい
上記はインストールフォルダ
C:\pgm\phpMyAdmin\sql
にある
create_tables.sql
をインポートすることで永続的に保管されます。