Содержание

Быстрая установка phpMyAdmin

phpMyAdmin - это приложение написанное на PHP и обеспечивающее полноценную, в том числе удаленную, работу с базами данных MySQL через браузер.

В один прекрасный момент мне надоело выписывать руководство по установке phpMyAdmin для каждой операционной системы. Если устанавливать phpMyAdmin из репозиториев, то донастройка до рабочего состояния будет отличаться для Ubuntu или CentOS. Часто даже для версии одного и того дистрибутива настройка phpMyAdmin имеет свои отличия.

Быстрая установка из исходного кода

Все многочисленные варианты установки от Docker до Composer phpMyAdmin читайте на официальном сайте.

wget -c https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.tar.gz
tar -xzvf phpMyAdmin-5.2.0-all-languages.tar.gz
mv phpMyAdmin-5.2.0-all-languages /var/www/ваш_сайт/pma
chown -R www-data:www-data /var/www/ваш_сайт/pma/
cd pma/
cp config.sample.inc.php config.inc.php
<?php
// use here a value of your choice at least 32 chars long
$cfg['blowfish_secret'] = '1{dd0`<Q),5XP_:R9UK%%8\"EEcyH#{o';
 
$i=0;
$i++;
/* Authentication type */
// $cfg['Servers'][$i]['auth_type']     = 'cookie';
$cfg['Servers'][$i]['auth_type'] = 'http';
// if you insist on "root" having no password:
// $cfg['Servers'][$i]['AllowNoPassword'] = true;
?>

Всё! phpMyAdmin установлен и готов к работе.

Или, если вы не хотите вводить каждый раз логин/пароль (данная конфигурация не рекомендуется из соображений безопасности), конфигурационный файл может выглядеть так:

<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user']          = 'root';
$cfg['Servers'][$i]['password']      = 'changeme'; // ваш пароль
$cfg['Servers'][$i]['auth_type']     = 'config';
?>

Для создания пользователя со всеми привилегиями нужно последовательно ввести следующие команды в оболочку MySQL:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

Теперь можно выполнить вход в PhpMyAdmin от имени созданного пользователя. После входа будет открыто окно с интерфейсом PhpMyAdmin.

Включение дополнительных возможностей phpMyAdmin

Включение дополнительных возможностей phpMyAdmin: Linked-tables infrastructure (Инфраструктура связанных таблиц). Для использования многих опций (закладок, комментариев, SQL-истории, PDF-схем, преобразования содержимого полей, и т.д.) необходимо создать набор специальных таблиц. Эти таблицы могут находиться как в Вашей базе данных, так и в центральной базе при многопользовательской системе (в этом случае данная БД может быть доступна только для пользователя controluser, соответственно, другие пользователи не имеют прав на неё).

В файл config.inc.php нужно добавить и раскомментировать строки (копируем их из файла config.sample.inc.php)

/* 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]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
 
/*
 * End of servers configuration
 */
 
/*
 * Directories for saving/loading files from server
 */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

Создаем таблицы phpMyAdmin, для этого импортируем файл create_tables.sql (находится в подпапке sql)

mysql -uroot -p < sql/create_tables.sql

Создаем пользователя для управления ново созданной базой и прописываем его в настройках

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
You will also need to have a controluser ($cfg['Servers'][$i]['controluser'] and $cfg['Servers'][$i]['controlpass'] settings) with the proper rights to those tables. For example you can create it using following statement:

And for any MariaDB version:

CREATE USER 'pma'@'localhost' IDENTIFIED VIA mysql_native_password USING 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON `<pma_db>`.* TO 'pma'@'localhost';
For MySQL 8.0 and newer:

CREATE USER 'pma'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
For MySQL older than 8.0:

CREATE USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password AS 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';

Расширенные настройки phpMyAdmin

PmaAbsoluteUri позволяет в настройках (config.inc.php) phpmyadmin явно указать URL сайта на котором он работает, в противном случае phpmyadmin определяет его автоматически. Эта возможность может понадобиться например если Аpache работает на нестандартном порту (пусть 81 порт), а front-end к нему стоит Nginx.

$cfg['PmaAbsoluteUri'] = 'https://ssl.example.org/pma.example.org/';