Включение новых возможностей в phpMyAdmin
Уже на позапрошлой неделе для операционной системы FreeBSD вышло обновление языка PHP lang/php5 (php5-5.4.21 -> php5-5.4.23) и web-приложения для администрирования MYSQL – phpMyAdmin databases/phpmyadmin (phpMyAdmin-suphp-4.0.10 -> phpMyAdmin-suphp-4.1.0) . В последнюю разработчики ввели новые возможности, для включения которых необходимо выполнить некоторые действия. |
phpMyAdmin версии 4.1.0 вышел 11 декабря 2013 года. Одно из нововведений – возможность конфигурирования меню для различных пользователей и групп, к которым они принадлежат. Так же появилась возможность скрытия/показа определенных элементов навигации в меню phpMyAdmin для различных пользователей и групп.
После обновления phpMyAdmin и захода на его web-страничку:
Снизу экрана на красном фоне появилась надпись следующего содержания (см. Рис.1):
Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены. Для определения причины нажмите здесь.
Рис.1 (нажмите для увеличения)
Перейдя по ссылке увидел, что три последние (новые) переменные не обозначены (см. Рис.2):
Рис.2 (нажмите для увеличения)
Чтобы сделать эти новые возможности доступными, необходимо произвести следующие манипуляции:
I. узнайте, каким образом необходимо создать дополнительные таблицы в базе phpMyAdmin (соответствующие строки создания таблиц можно скопировать) из файла create_tables.sql
:
# less /usr/local/www/phpMyAdmin/examples/create_tables.sql ... -- -------------------------------------------------------- -- -- Table structure for table `pma_users` -- CREATE TABLE IF NOT EXISTS `pma_users` ( `username` varchar(64) NOT NULL, `usergroup` varchar(64) NOT NULL, PRIMARY KEY (`username`,`usergroup`) ) COMMENT='Users and their assignments to user groups' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; -- -------------------------------------------------------- -- -- Table structure for table `pma_usergroups` -- CREATE TABLE IF NOT EXISTS `pma_usergroups` ( `usergroup` varchar(64) NOT NULL, `tab` varchar(64) NOT NULL, `allowed` enum('Y','N') NOT NULL DEFAULT 'N', PRIMARY KEY (`usergroup`,`tab`,`allowed`) ) COMMENT='User groups with configured menu items' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; -- -------------------------------------------------------- -- -- Table structure for table `pma_navigationhiding` -- CREATE TABLE IF NOT EXISTS `pma_navigationhiding` ( `username` varchar(64) NOT NULL, `item_name` varchar(64) NOT NULL, `item_type` varchar(64) NOT NULL, `db_name` varchar(64) NOT NULL, `table_name` varchar(64) NOT NULL, PRIMARY KEY (`username`,`item_name`,`item_type`,`db_name`,`table_name`) ) COMMENT='Hidden items of navigation tree' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
Выше указана локация данного файла по-умолчанию.
II. зайдите на свой сервер MYSQL:
# mysql -u root -h localhost -p
где:
— параметр -u указывает пользователя, который будет входить в систему (в данном случае – root);
— параметр -h указывает узел сети (обычно это localhost, если вы настраиваете не удаленный сервер);
— параметр -p сообщает программе-клиенту MySQL, что для доступа к базе данных будет вводится пароль.
III. задействуйте базу данных phpmyadmin (или ту, которую использует ваш phpMyAdmin) и создайте с помощью скопированного кода три недостающие таблицы:
mysql> use phpmyadmin; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> CREATE TABLE IF NOT EXISTS `pma_users` ( -> `username` varchar(64) NOT NULL, -> `usergroup` varchar(64) NOT NULL, -> PRIMARY KEY (`username`,`usergroup`) -> ) -> COMMENT=‘Users and their assignments to user groups’ -> DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; Query OK, 0 rows affected (0.09 sec) mysql> CREATE TABLE IF NOT EXISTS `pma_usergroups` ( `usergroup` varchar(64) NOT NULL, -> `usergroup` varchar(64) NOT NULL, -> `tab` varchar(64) NOT NULL, -> `allowed` enum(‘Y’,‘N’) NOT NULL DEFAULT ‘N’, -> PRIMARY KEY (`usergroup`,`tab`,`allowed`) -> ) -> COMMENT=‘User groups with configured menu items’ -> DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE IF NOT EXISTS `pma_navigationhiding` ( -> `username` varchar(64) NOT NULL, -> `item_name` varchar(64) NOT NULL, -> `item_type` varchar(64) NOT NULL, -> `db_name` varchar(64) NOT NULL, -> `table_name` varchar(64) NOT NULL, -> PRIMARY KEY (`username`,`item_name`,`item_type`,`db_name`,`table_name`) -> ) -> COMMENT=‘Hidden items of navigation tree’ -> DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; Query OK, 0 rows affected (0.02 sec) mysql> quit Bye
IV. теперь внесите в конфигурационный файл phpMyAdmin config.inc.php
(до ?>) следующие строки:
# nano -w /usr/local/www/phpMyAdmin/config.inc.php ... $cfg['Servers'][$i]['users'] = 'pma_users'; $cfg['Servers'][$i]['usergroups'] = 'pma_usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma_navigationhiding';
ВАЖНО: обратите внимание, чтобы указанные переменные совпали с именем таблиц, которые вы только что создали! т.е. если таблицы у вас pma_users, pma_usergroups и pma_navigationhiding, то и переменные должны быть такими же (с одним подчеркиванием между pma и остальной частью).
Общий вид конфигурационного файла для полноценной работы phpMyAdmin у меня имеет следующий вид:
# less /usr/local/www/phpMyAdmin/config.inc.php <?php /* Servers configuration */ $i = 0; /* Server: hostname.domain.ru [1] */ $i++; $cfg['Servers'][$i]['verbose'] = 'hostname.domain.ru'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = 3306; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; /* End of servers configuration */ $cfg['blowfish_secret'] = '1e2c5a7c4d17f1.92749715'; $cfg['DefaultLang'] = 'ru-utf-8'; $cfg['ServerDefault'] = 1; $cfg['UploadDir'] = '%u'; $cfg['SaveDir'] = '%u'; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $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]['bookmarktable'] = 'pma_bookmark'; $cfg['Servers'][$i]['history'] = 'pma_history'; $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords'; $cfg['Servers'][$i]['tracking'] = 'pma_tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig'; $cfg['Servers'][$i]['recent'] = 'pma_recent'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs'; $cfg['Servers'][$i]['users'] = 'pma_users'; $cfg['Servers'][$i]['usergroups'] = 'pma_usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma_navigationhiding'; ?>
Вам осталось перезайти на web-сервер phpMyAdmin. Если вы увидите примерно такую картинку, как на Рис.3 – то вы успешно включили новые возможности своего phpMyAdmin!
Рис.2 (нажмите для увеличения)
На момент написания статьи, 23 декабря вышла уже следующая версия – phpMyAdmin 4.1.2. В ней (как и в предыдущей версии 4.1.1) были исправлены немногочисленные ошибки.
Все делал по Вашей инструкции, но:
1. Обратите внимание на подчеркивание два (!) раза, пример pma__usergroups. Может, это только у меня (локальный XAMPP); копипаст спасет.
2. Создание таблиц пришлось разбить на три части, в куче не получилось.
А так, респект за инфу!