12. phpMyAdmin の環境保管領域を作成する。その1

11. MariaDBのインストール の続き。

(この記事はまだ中途半端なので参考にしないでください)

phpMyAdmin にログインすると下部に「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています」と表示されているかと思います。

これを解決するにあたって、コマンド入力での設定とGUIでの設定の二種類を試してみますので、あとでリセットできるように現時点でのスナップショットを撮っておくことをお勧めします。

f:id:hirose-test:20180801232051j:plain

「理由についてはこちらをご覧ください」と書かれているのでクリックすると

「Configuration of pmadb... NG
「一般的なリレーション機能 無効
とのこと。

f:id:hirose-test:20180801232550j:plain

その部分の「?」をクリックすると phpMyAdmin の説明書ページの
phpMyAdmin configuration storage *1」の欄に飛ぶ。

phpMyAdmin の)追加機能(ブックマークコメントSQL履歴追跡メカニズムPDF生成変換機能リレーションなど)をすべて使うためには、特別なテーブルのセット(環境保護領域)を作成する必要があります。これらのテーブルは、自身のデータベースに格納することもマルチユーザーインストール用の中央データベースに格納することもできます(このデータベースには制御ユーザーがアクセスするため、他のユーザーにはアクセス権がありません)。
http://localhost/phpmyadmin/doc/html/setup.html#phpmyadmin-configuration-storage

というわけで「環境保管領域」を作ります。また「環境保管領域」にアクセスするための特別なアカウント "controluser" を作ることが推奨されています。

この特別なアカウントは、phpMyAdmin環境保存領域にアクセスするために使用されます。シングルユーザーの場合は必要ありませんが、phpMyAdminが共有されている場合は、phpMyAdmin環境保管領域へのアクセス権をこのユーザーに与え、phpMyAdminを使用するように構成することをお勧めします。すべてのユーザは、phpMyAdmin環境保存領域に直接アクセスする必要なく、その機能を使用することができます。 https://docs.phpmyadmin.net/ja/latest/config.html#cfg_Servers_controluser

一旦phpMyAdmin からログアウト。

[root@localhost ~]# vi /usr/share/phpMyAdmin/sql/create_tables.sql 

-- Privileges
--
-- (activate this statement if necessary)
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
   'pma'@localhost;

↑ 2行分コメントを外す
# cp -p /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.back
# vim /etc/phpMyAdmin/config.inc.php

コメントアウトを解除

/*
 * phpMyAdmin configuration storage settings.
 */
 
/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';  ←変更する
 
/* 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]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
 
$cfg['PmaAbsoluteUri'] = 'http://'.$_SERVER['SERVER_NAME'].'/phpMyAdmin/';
[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
~(後略)~
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
MariaDB [(none)]> source /usr/share/phpMyAdmin/sql/create_tables.sql
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
 ~(中略)~
MariaDB [phpmyadmin]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
+--------------------+
MariaDB [phpmyadmin]> SET PASSWORD FOR pma@localhost = PASSWORD('pmapass'); ←上で決めたやつ
Query OK, 0 rows affected (0.00 sec)

MariaDB [phpmyadmin]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [phpmyadmin]> exit
Bye

再度 phpMyAdmin にログイン。環境保管領域の警告は消えている。

f:id:hirose-test:20180804132647j:plain

翻訳に関しての警告は無視。

追記:なんか間違ってる気がする。次は下記で試す。

https://oxynotes.com/?p=8457

14. phpMyAdmin データベースとユーザーの新規作成

*1:環境保管領

/* -----codeの行番号----- */