Установка и обеспечение безопасности phpmyadmin в ubuntu 20.04
Содержание:
- phpMyAdmin 4.9.3 is released
- phpMyAdmin 4.9.2 is released
- Использование phpMyAdmin для веб-разработки
- phpMyAdmin 4.9.6 and 5.0.3 are released
- History
- phpMyAdmin 5.0.0-rc1 is released
- Предварительные требования
- Подготовка web сервера apache
- Шаг 2 — Настройка аутентификации и прав пользователя
- Зачем создавать базу данных MySQL
- Коротко об MySQL и phpMyAdmin
- Возможные проблемы
- phpMyAdmin 4.9.5 and 5.0.2 are released
- phpMyAdmin 5.0.0 is released
- Milestone releases
- Установка phpMyAdmin
phpMyAdmin 4.9.3 is released
2019-12-26
Welcome to phpMyAdmin 4.9.3, a routine bugfix release. This release is occurring simultaneously with the release of phpMyAdmin 5.0.0, which is our recommended version except for users with older PHP installations.
This is planned as the final bugfix release of phpMyAdmin version 4. Version 4 works with PHP versions 5.5 through (at least) 7.4,
and MySQL versions 5.5 and newer (and the corresponding MariaDB versions). Version 5 will require PHP 7.1 or newer, but
we plan to maintain security fixes for version 4 as part of our LTS program. For end of life details and supported
versions, please see the «Supported versions» grid at https://www.phpmyadmin.net/downloads/.
This release includes fixes for many bugs, including:
- Several PHP notices and warnings including «Undefined index table_create_time,»
a notice about error_reporting() being disabled for security reasons, and several Undefined Index errors. - Support CloudFront-Forwarded-Proto header for Amazon CloudFront proxy
- Early compatibility with development versions of PHP 8
- Fix replication actions (start, stop, etc)
There are many, many more bug fixes thanks to the efforts of our developers and other contributors.
For full details, you can see the ChangeLog file included with this release.
phpMyAdmin 4.9.2 is released
2019-11-22
Welcome to phpMyAdmin 4.9.2, a bugfix release that also contains a security fix.
This security fix is part of an ongoing effort to improve the security of the Designer feature and is designated PMASA-2019-5.
There is also an improvement for how we sanitize Git version information shown on the home page, thanks to Ali Hubail.
This release includes fixes for many bugs, including:
- Fixes for the «Failed to set session cookie» error which relates to the cookie name. In some cases, data stored in the cookie (such as the previously-used user account) may not be loaded from a previous phpMyAdmin cookie the first time you run version 4.9.2
- Fix for Advisor with MySQL 8.0.3 and newer
- Fix PHP deprecation errors
- Fix a situation where exporting users after a delete query could remove users
- Fix incorrect «You do not have privileges to manipulate with the users!» warning
- Fix copying a database’s privileges and several other problems moving columns with MariaDB
- Fix for phpMyAdmin not selecting all the values when using shift-click to select during Export
There are many, many more bug fixes thanks to the efforts of our developers and other contributors.
Использование phpMyAdmin для веб-разработки
1. Создание и удаление баз данных
На мой взгляд PMA особо полезен на стадиях разработки и тестирования, когда в любой момент смогу сбросить базу или сделать откат какой-то операции.
Без PMA мне бы пришлось заходить на мой сервер через SSH, подключаться к MySQL, а затем запускать запрос:
create database myapp; grant all privileges on myapp_database.* TO "your-mysql-username"@"localhost" identified by "your-mysql-password"; flush privileges;
PMA позволяет нам запускать любой запрос через удобный визуальный интерфейс. Нажмите вкладку SQL и вставьте вышеуказанные SQL код. Затем кликните Go чтобы создать базу данных.
Так же для создания базы данных можите напрямую воспользоваться визуальный интерфейсом:
Таким же образом, вы можете добавлять пользователей и назначать привилегии. Перейдите на вкладку “Привилегии”:
Кликните “Добавить пользователя” и назначьте желаемые привилегии для базы данных:
Для самого обычного аккаунта будет достаточно выделить боксы в разделах “данные” и “структура”.
Чтобы удалить базу данных откройте меню, выберите базу, нажмите “удалить”:
2. Резервное копирование базы данных
Перед какими-то важными операциями неплохо было бы осуществить резервное копирование базы. Если что-то пойдет не так вы всегда сможете восстановить базу из резервной копии.
Щелкните на базу данных, перейдите на вкладку “Экспорт” и выберите “Custom”.
Выберите пункт :
Когда нажмёте Go, PMA создаст резервную копию всей вашей базы данных и отдаст её на скачку. Если настройки тайм-аута в вашем Apache PHP не настроены должным образом, некоторые загрузки крупных файлов могут не завершиться или прерваться. Измените настройки в .
3. Тестирование запросов
PMA прекрасно подходит для тестирования SQL запросов. Во время разработки одного проекта, мне было необходимо изучить поведение и протестировать ряд сложных запросов геолокации, найти ближайшие к моему адресу соседства.
Выберите ваше базу данных, нажмите Query. Вставьте или отредактируйте сложные SQL запросы и протестируйте их напрямую через PMA:
После шлифовки запроса, его легче применить в рамках шаблона ActiveRecord. Как тут:
$criteria = new CDbCriteria; $criteria->together=true; $criteria->having= "distance < 100"; $criteria->order = "distance ASC"; $criteria->with = array('place_geometry'=>array('select'=>'place_id,center,'.new CDbExpression('(3959 * acos( cos( radians('.$lat.') ) * cos( radians( X(center) ) ) * cos( radians( Y(center) ) - radians('.$lon.') ) + sin( radians('.$lat.') ) * sin( radians( X(center) ) ) )) as distance'))); $dataProvider = new CActiveDataProvider(Place::model()->active()->includesMember($id), array('criteria' => $criteria, 'pagination' => array( 'pageSize' => 10, ), ));
4. Быстрое изменение данных
Если вы разработчик, то у вас наверняка возникала ситуация что при работе с БД выскакивали ошибки из-за отсутствия или неправильного значения в какой-то из ячеек таблицы. Не так ли?
PMA предоставляет нам отличную возможность изменения значения ячеек непосредственно из отображения таблицы. Откройте базу данных и выберите таблицу. Дважды кликните на колонке чтобы ввести значение. После окончания изменений нажмите “Enter”:
5. Актуализация базы данных на основе миграций
Если вы используете фрэймворк (как Yii), то наверняка в вашем арсенале есть инструмент миграции. Миграции облегчает поэтапное изменение БД в процессе разработки. Однако при тестирование могут возникнуть проблемы.
Чаще всего я наталкиваюсь на ошибки миграции из-за лишних (не удалённых) индексов, внешних ключей или таблиц. В таком случае я использую PMA для удаления таблицы и нежелательных индексов.
В PMA, выберите базу данных, кликните не вкладку SQL и выполните запрос. Вот несколько примеров:
Надеемся, что данная статья была для вас полезной.
phpMyAdmin 4.9.6 and 5.0.3 are released
2020-10-10
Hello,
The phpMyAdmin team announces the release of both phpMyAdmin versions 4.9.6 and 5.0.3.
Both versions contain several important security fixes:
- PMASA-2020-5 XSS vulnerability with transformation feature
- PMASA-2020-6 SQL injection vulnerability with the search feature
In addition, 5.0.3 contains many bugfixes. Some of the highlights include:
- Fix an error message about htmlspecialchars() when attempting to export XML
- Support double tapping to edit on mobile
- Fix the error message «Use of undefined constant MYSQLI_TYPE_JSON» when using mysqlnd
- Fix fatal JS error on index creation after using Enter key to submit the form
- Fix «axis-order» to swap latitude and longitude on MySQL 8.1 or newer
- Fix an error when overwriting an existing query bookmark
- Fix some warnings that appear with PHP 8
- Fix alter user privileges query when editing an account with MySQL 8.0.11 and newer
- Fix issues regarding TIMESTAMP columns with default CURRENT_TIMESTAMP in MySQL 8.0.13 and newer
- Fix a message that «Warning: error_reporting() has been disabled for security reasons» on php 7.x
There are many other bugs fixes, please see the ChangeLog file included with this release for full details.
Known shortcomings:
Due to changes in the MySQL authentication method, PHP versions prior to 7.4 are unable to authenticate to a MySQL 8.0 or newer server (our tests show the problem actually began with MySQL 8.0.11). This relates to a PHP bug https://bugs.php.net/bug.php?id=76243. There is a workaround, that is to set your user account to use the current-style password hash method, . This unfortunate lack of coordination has caused the incompatibility to affect all PHP applications, not just phpMyAdmin. For more details, you can see our bug tracker item at https://github.com/phpmyadmin/phpmyadmin/issues/14220. We suggest upgrading your PHP installation to take advantage of the upgraded authentication methods.
History
Tobias Ratschiller, then an IT consultant and later founder of the software
company Maguma, started to work on a PHP-based web front-end to MySQL in 1998,
inspired by Peter Kuppelwieser’s MySQL-Webadmin. He gave up the project (and
phpAdsNew, of which he was also the original author) in 2000 because of lack
of time.
By that time, phpMyAdmin had already become one of the most popular PHP
applications and MySQL administration tools, with a large community of users
and contributors. In order to coordinate the growing number of patches, a
group of three developers, Olivier Müller, Marc Delisle and Loïc Chapeaux,
registered the phpMyAdmin project at SourceForge.net and took over the
development in 2001. Since 2015 the development is completely based
on GitHub.
phpMyAdmin 5.0.0-rc1 is released
2019-11-22
Welcome to the first release candidate of phpMyAdmin 5.0.0. This release features a great number of new features and bug fixes.
This is expected to be the final release candidate before 5.0.0 is finalized. Please visit https://github.com/phpmyadmin/phpmyadmin/milestones to stay updated on the expected release date and known bugs.
Since 5.0.0-alpha1, there have been several bugfixes, none of which are particularly notable. For a complete comparison, you could visit https://github.com/phpmyadmin/phpmyadmin/compare/RELEASE_5_0_0ALPHA1..RELEASE_5_0_0RC1.
The following are the release notes from 5.0.0-alpha1:
With this release, we are removing support of old PHP versions (5.5, 5.6, 7.0, and HHVM). These versions are outdated and are no longer supported by the PHP team. Detailed requirement information is available in the documentation included with the download or at https://docs.phpmyadmin.net/en/latest/require.html. As shown at https://www.phpmyadmin.net/downloads/#support our current branch of 4.9.x is planned to remain supported for some time in an LTS capacity.
Some of the changes and new features include:
- Enable columns names by default for CSV exports
- Add Metro theme
- Automatically add the index when creating an auto increment column
- Improvements to exporting views
- Prompt the user for confirmation before running an UPDATE query with no WHERE clause
- Improvements to how errors are show to the user (including allowing easier copying of the error text to the clipboard)
- Added keystrokes to clear the line (ctrl+l) and clear the entire console window (ctrl+u)
- Use charset ‘windows-1252’ when export format is MS Excel
There are several more changes, please refer to the ChangeLog file included with the release for full details.
Known shortcomings:
Due to changes in the MySQL authentication method, PHP versions prior to 7.4 are unable to authenticate to a MySQL 8.0 or newer server (our tests show the problem actually began with MySQL 8.0.11). This relates to a PHP bug https://bugs.php.net/bug.php?id=76243. There is a workaround, that is to set your user account to use the current-style password hash method, mysql_native_password. This unfortunate lack of coordination has caused the incompatibility to affect all PHP applications, not just phpMyAdmin. For more details, you can see our bug tracker item at https://github.com/phpmyadmin/phpmyadmin/issues/14220.
Downloads are available now at https://phpmyadmin.net/downloads/
Our work would not be possible without the donations of our generous sponsor, and this release in particular is brought to you thanks to the hard work of our Google Summer of Code students and many other contributors.
Предварительные требования
Прежде чем приступить к изучению данного руководства, вам нужно выполнить несколько базовых действий.
Во-первых, мы полагаем, что ваш сервер имеет пользователя user без root прав с привилегиями , а также брандмауэр с , как указано в руководстве по начальной настройке сервера для Ubuntu 18.04.
Мы также предполагаем, что вы выполнили установку LAMP (Linux, Apache, MySQL и PHP) на вашем сервере с Ubuntu 18.04. Если вы еще не сделали этого, вы можете воспользоваться данным руководством по установке стека LAMP на Ubuntu 18.04.
Наконец, существует ряд важных соображений безопасности при использовании таких программных средств, как phpMyAdmin, поскольку phpMyAdmin:
- напрямую связывается с установленной у вас версией MySQL;
- управляет аутентификацией, используя учетные данные MySQL;
- исполняет и возвращает результаты для произвольных SQL запросов.
По этим причинам, и поскольку это широко применяемое PHP приложение, которое часто становится мишенью для атак, вы ни при каких условиях не должны запускать phpMyAdmin на удаленных системах, используя обычное HTTP-соединение. Если у вас нет существующего домена с настроенным SSL/TLS сертификатом, вы можете воспользоваться следующим руководством по обеспечению безопасности Apache с помощью Let’s Encrypt в Ubuntu 18.04. Для этого вам потребуется зарегистрировать доменное имя, создать DNS запись для вашего сервера и .
После завершения этих шагов вы будете готовы начать работу с данным руководством.
Подготовка web сервера apache
Далее я буду считать, что у вас уже есть установленный и настроенный сервер CentOS 7. Если это не так, то смотрите мои подробные инструкции с видео на тему установки и базовой настройки сервера CentOS 7.
Если на голом сервере выполнить:
# yum install phpmyadmin
Вы увидите полный список зависимостей, но в нем не будет самого веб сервера и интерпретатора php, только его модули. Веб сервер вам нужно предварительно установить и настроить самим. Сделем это на примере веб сервера httpd (апач). Устанавливаем его:
# yum install -y httpd
Теперь установим php, без него панель администрирования не заработает:
# yum install -y php
Запускаем веб сервер, добавляем его в автозагрузку и проверяем работу:
# systemctl enable httpd # systemctl start httpd
Заходите по адресу http://ip-адрес-сервер. Вы должны увидеть тестовую страницу апача. Теперь проверим, работает ли php. Создаем тестовую страничку в папке /var/www/html:
# mcedit /var/www/html/index.php
<?php phpinfo(); ?>
Назначаем владельца apache на созданный файл:
# chown apache. /var/www/html/index.php
Теперь снова заходим по адресу http://ip-адрес-сервера, вы должны увидеть вывод phpinfo:
Если видите такой же вывод, значит все в порядке, веб сервер готов для работы с phpmyadmin. Приступаем к его установке.
Шаг 2 — Настройка аутентификации и прав пользователя
При установке phpMyAdmin на ваш сервер автоматически создал пользователь базы данных с именем , который отвечает за определенные базовые процессы программы. Вместо того, чтобы выполнять вход с помощью этого пользователя и пароля администратора, которые вы задали при установке, рекомендуется войти с использование вашего root пользователя MySQL или пользователя, предназначенного для управления базами данных через интерфейс phpMyAdmin.
Настройка доступа по паролю для учетной записи root в MySQL
В системах Ubuntu при запуске MySQL 5.7 (и более поздние версии) для root пользователя MySQL по умолчанию устанавливается аутентификация с помощью плагина , а не пароля. Это позволяет обеспечить большую безопасность и удобство во многих случаях, однако это также может осложнить ситуацию, когда вам нужно предоставить внешней программе, например, phpMyAdmin, доступ к пользователю.
Чтобы войти в phpMyAdmin с root пользователем MySQL, вам нужно переключить метод аутентификации с на , если вы еще не сделали этого. Для этого откройте командную строку MySQL через терминал:
Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:
В этом примере вы можете видеть, что root пользователь действительно использует метод аутентификации с помощью плагина . Чтобы настроить для учетной записи root аутентификацию с помощью пароля, выполните следующую команду . Обязательно измените значение на надежный пароль по вашему выбору:
Затем выполните команду , которая просит сервер перезагрузить предоставленные таблицы и ввести в действие изменения:
Проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что root пользователь больше не использует для аутентификации плагин :
В этом выводе вы можете увидеть, что пользователь root будет использовать аутентификацию по паролю. Теперь вы можете выполнить вход в интерфейс phpMyAdmin с помощью root пользователя с паролем, который вы задали ранее.
Настройка доступа по паролю для выделенного пользователя MySQL
Некоторые могут посчитать, что для их рабочего процесса лучше подходит подключение к phpMyAdmin с помощью специально выделенного пользователя. Чтобы сделать это, снова откройте командную строку MySQL:
Примечание. Если вы активировали аутентификацию по паролю, как указано в предыдущем разделе, вам потребуются другие команды для доступа к командной строке MySQL. Следующая команда будет запускать ваш клиент MySQL с обычными правами пользователя, и вы получите права администратора внутри базы данных только с помощью аутентификации:
Создайте нового пользователя и придумайте для него надежный пароль:
Затем предоставьте вашему новому пользователю соответствующие права. Например, вы можете предоставить пользователю права доступа ко всем таблицам в базе данных, а также можете добавлять, изменять и удалять права пользователя с помощью этой команды:
После этого закройте командную строку MySQL:
Теперь вы можете получить доступ к веб-интерфейсу, набрав доменное имя или открытый IP-адрес вашего сервера и добавив
Выполните вход в интерфейс с помощью root пользователя или с новым именем пользователя и паролем, которые вы только что задали.
При входе вы увидите пользовательский интерфейс, который будет выглядеть следующим образом:
Теперь, когда вы можете подключаться и взаимодействовать с phpMyAdmin, осталось только установить более жесткие правила безопасности системы, чтобы защитить ее от атак.
Зачем создавать базу данных MySQL
Создание базы данных MySQL необходимо для хранения в ней данных интернет сайта. Причина создание базы данных сводится к двум основным направлениям:
- Необходимость создать сайт на готовой платформе (CMS). Вся поступающая информация интернет ресурса: учётные записи пользователей, содержание статей и другие данные сохраняются в таблицах базы данных. Более подробно читайте статью о том, что такое интернет движок и какие виды движков бывают.
- Создание персонального сайта с возможностью также сохранять данные.
Следует отметить, что первый вариант предоставляет готовое решение создание сайта, а второй требует полной разработки сайта с самого начала. Это направление требует знаний в области программирования и взаимодействия с базой данных, а в первом варианте необходимо лишь наладить подключение к ней.
Коротко об MySQL и phpMyAdmin
MySQL — это свободная система управления базами данных, которая создаётся путём построения таблиц с определёнными свойствами. При помощи языков программирования (таких, как PHP, Perl, Basic и другие) возможно сохранение определённых данных в MySQL, а также их вывод на страницу в виде HTML. Преимуществами баз данных MySQL являются: многопоточность. Поддержка нескольких одновременных запросов, гибкая система привилегий и паролей, легкость управления таблицей, включая добавление и удаление ключей и полей м многое другое.
phpMyAdmin — веб-приложение с открытым исходным кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования баз данных MySQL. В данный момент phpMyAdmin позволяет: создавать и удалять базы данных, создавать, копировать, удалять, переименовывать и изменять таблицы, выполнять SQL-запросы, осуществлять поиск в базе данных или в её разделах и многое другое. В целом управлять базами данных через phpMyAdmin не составит большого труда и умения.
Возможные проблемы
1. Ошибка при обработке запроса, код 200, parsererror (rejected)
Появляется во всплывающем окне сразу после входа в базу. Дополнительно сообщение: «Похоже соединение с сервером потеряно. Проверьте сетевое подключение и статус сервера.»
Причина: предыдущие сессии могут храниться на сервере. Когда мы подключаемся к базе, к которой ранее подключались со старого phpMyAdmin, приложение безуспешно пытается их использовать.
Решение: просто обновляем в браузере страницу и заходим в базу повторно.
2. Секретная парольная фраза в конфигурации (blowfish_secret) слишком короткая
Предупреждение может появиться снизу на страницах приложения.
Причина: в более новых версиях может потребоваться использовать более стойкую парольную фразу. Она задается в конфигурационном файле, который мы перенесли со старой версии.
Решение: меняем парольную фразу. Сначала генерируем ее командой:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32 ; echo »
После открываем конфигурационный файл:
vi /var/www/phpMyAdmin/config.inc.php
И редактируем строку:
$cfg = ‘NiYR7z886zou9C50UczXL7zRp2Pg5sRC’;
phpMyAdmin 4.9.5 and 5.0.2 are released
2020-03-21
Hello,
The phpMyAdmin team announces the release of both 4.9.5 and 5.0.2.
Both versions contain several security fixes:
- PMASA-2020-2 SQL injection vulnerability in the user accounts page,
particularly when changing a password - PMASA-2020-3 SQL injection vulnerability relating to the search feature
- PMASA-2020-4 SQL injection and XSS having to do with displaying results
- Removing of the «options» field for the external transformation.
Version 5.0.3 also contains many bug fixes:
- Fix for copying a user account
- Removed SET AUTOCOMMIT=0 from SQL export
- Fix for the display of table borders
- Fix for ENUM radio button user interface problems
- Improved the prompt for abandoning changes when no changes were made
in the SQL window - Fix for inserting a primary key with «insert as new row»
- Fix incorrect suggested latest available version to version 5
There are many other bugs fixes, please see the ChangeLog file included
with this release for full details.
Known shortcomings:
Due to changes in the MySQL authentication method, PHP versions prior to
7.4 are unable to authenticate to a MySQL 8.0 or newer server (our tests
show the problem actually began with MySQL 8.0.11). This relates to a
PHP bug https://bugs.php.net/bug.php?id=76243. There is a workaround,
that is to set your user account to use the current-style password hash
method, mysql_native_password. This unfortunate lack of coordination has
caused the incompatibility to affect all PHP applications, not just
phpMyAdmin. For more details, you can see our bug tracker item at
https://github.com/phpmyadmin/phpmyadmin/issues/14220. We suggest
upgrading your PHP installation to take advantage of the authentication
methods.
As a reminder, phpMyAdmin 4.9 is in the long-term support phase where it will only get important security fixes and critical bug fixes. Users are suggested to migrate to version 5.0.
Downloads are available now at https://phpmyadmin.net/downloads/
phpMyAdmin 5.0.0 is released
2019-12-26
Welcome to the release of phpMyAdmin version 5.0.0. This release is occurring simultaneously with version 4.9.3; except for users with old PHP installations, version 5.0.0 is the recommended version.
This release includes many new features and improvements from the 4.9 series. We expect to maintain version 4 in a security capacity
to support users with older PHP installations. For full details about supported versions and end of life dates, see the «Supported versions»
grid at https://www.phpmyadmin.net/downloads/.
With this release, we are removing support of old PHP versions (5.5, 5.6, 7.0, and HHVM). These versions are outdated and are no longer supported by the PHP team.
Version 5.0 includes many coding improvements that modernize the interface. Many of these changes are transparent to users, but make the code easier to maintain.
Much of this refactoring work is completed by our contract developer, Maurício Meneghini Fauth. We always consider applications for new (paid) contract developers,
see https://www.phpmyadmin.net/contractor/ for program details.
Some of the changes and new features include:
- Enable columns names by default for CSV exports
- Add Metro theme
- Automatically add the index when creating an auto increment column
- Improvements to exporting views
- Prompt the user for confirmation before running an UPDATE query with no WHERE clause
- Improvements to how errors are show to the user (including allowing easier copying of the error text to the clipboard)
- Added keystrokes to clear the line (ctrl+l) and clear the entire console window (ctrl+u)
- Use charset ‘windows-1252’ when export format is MS Excel
There are several more changes, please refer to the ChangeLog file included with the release for full details.
Known shortcomings:
Due to changes in the MySQL authentication method, PHP versions prior to 7.4 are unable to authenticate to a MySQL 8.0 or newer server (our tests show the problem actually began with MySQL 8.0.11). This relates to a PHP bug https://bugs.php.net/bug.php?id=76243. There is a workaround, that is to set your user account to use the current-style password hash method, mysql_native_password. This unfortunate lack of coordination has caused the incompatibility to affect all PHP applications, not just phpMyAdmin. For more details, you can see our bug tracker item at https://github.com/phpmyadmin/phpmyadmin/issues/14220. We suggest upgrading your PHP installation to take advantage of the authentication methods.
Downloads are available now at https://phpmyadmin.net/downloads/
Our work would not be possible without the donations of our generous sponsor, and this release in particular is brought to you thanks to the hard work of our Google Summer of Code students and many other contributors.
Milestone releases
- 1998-09-09 0.9.0: First internal release.
- 1998-11-03 1.1.0: Added first confirmations for DROP commands.
- 1998-11-29 1.2.0: Added possibility to import from text files.
- 1998-12-16 1.3.0: Added query by example functionality.
- 1998-12-27 1.3.1: First multi-lingual version.
- 1999-01-16 1.4.0: Added support for renaming and copying tables.
- 1999-04-11 2.0.0: Major layout changes.
- 2000-06-08 2.1.0: Last release by the original developer Tobias Ratschiller.
- 2001-08-31 2.2.0: First stable release made by the phpMyAdmin project.
- 2001-11-08 2.3.0: Database and table views were split into smaller sections.
- 2003-11-05 2.5.0: Introduction of the MIME-based transformation system.
- 2004-09-27 2.6.0: Improved character set handling and support for MySQL 4.
- 2005-12-04 2.7.0: Improved importing capabilities, simplified configuration and interface cleanup.
- 2006-03-06 2.8.0: Compatibility updates, hiding databases, configurable memory limits, web-based setup.
- 2006-09-20 2.9.0: Added export to OpenDocument Text and Spreadsheet.
- 2007-02-27 2.10.0: GUI for relations, called Database Designer.
- 2007-08-22 2.11.0: Supports creating VIEWS from query results, manages triggers, procedures and functions. Improved interface for servers handling large number of databases/tables.
- 2008-09-27 3.0.0: Requires PHP 5.2 and MySQL 5+. Supports EVENT and TRIGGER.
- 2008-11-28 3.1.0: Added support for BLOBStreaming, Swekey hardware authentication and rewritten setup script.
- 2009-06-09 3.2.0: Added many small features.
- 2010-03-07 3.3.0: Added new import and export modules, changes tracking, synchronization and support for replication configuration.
- 2001-05-11 3.4.0: AJAXification of some parts, charts, visual query builder, user preferences, ENUM/SET editor.
- 2012-04-07 3.5.0: Improved browsing, server monitoring, support for stored routines, events and triggers, openGIS support, Drizzle support.
- 2013-05-03 4.0.0: Removal of HTML frames, switch to tree-based navigation, and new look for the documentation.
- 2013-12-12 4.1.0: Requires PHP 5.3 and MySQL 5.5. Added ReCAPTCHA support, configurable menus, and an error reporting component.
- 2014-05-08 4.2.0: Added fixed navigation tabs, favorites table and a quick filter for displayed rows.
- 2014-12-05 4.3.0: Added SQL preview mode, central list of columns, normalization and the new console.
- 2015-04-01 4.4.0: Various improvements to the table structure page, the console and the ZeroConf features.
- 2015-09-23 4.5.0: Various improvements to export, import, table partitions or the console features. Requires PHP 5.5 or newer
- 2016-03-22 4.6.0: Improved support for SSL connections to MySQL and many bugfixes.
- 2017-03-29 4.7.0: Added database and table filtering, changes to JSON export, and begin using Composer to manage library dependencies.
- 2018-04-07 4.8.0: Support for two–factor authentication, added a mobile–friendly interface.
- 2019-06-04 4.9.0: «Long Term Support» (LTS) version providing security fixes for PHP 5.5 through 7.4 and MySQL 5.5 and newer.
- 2019-12-26 5.0.0: Added the Metro theme as well as moderizing many aspects of the codebase. PHP 7.1 or newer is now required.
Установка phpMyAdmin
Нет ничего проще, чем установить PMA на Linux. Я опишу как сделать это на Ubuntu 14.x в Digital Ocean. Зайдите на сервер через SSH.
Во время установки можете использовать стандартные настройки или подлатать их под себя.
Если вы ограничите доступ MySQL только через localhost (что вы должны сделать), то для хакера база будет вне зоны досягаемости. Конечно он может попытаться подключиться через SSH или осуществит атаку посредством SQL инъекций, но напрямую атаковать базу данных не сможет
Как только вы установите PMA, то данный инструмент становится потенциально уязвим для атак, поэтому меры предосторожности не повредят
Есть несколько мер, которые я бы посоветовал при конфигурировании PMA.
- Используйте очень надежные пароли для всех учетных записей MySQL, особенно для пользователя root. Например, 25 символов для пароля.
- Для каждого из сайтов, используйте различные учетные записи и привилегии. Таким образом, если один пароль будет украден, пострадает только одна база данных.
- Меняйте стандартный URL доступа к PMA. Таким образом люди не смогут достучаться до него по адресу http://yourblog.com/phpmyadmin. Хотя данная мера не очень эффективна, она всё же увеличивает безопасность.
Добваляем алиас в файл :
Перезагружаем apache:
Теперь PMA будет доступен по адресу http://yourblog.com/myobscuredpma.
Если вам необходимо изменить пароль вашего phpMyAdmin, измените содержимое файла :
4. Настройте веб-аутентификацию для доступа к PMA. После этого вам потребуется ввести дополнительный пароль:
Для настройки ограничений пользователя apache следуйте этим шагам:
Установите из пакета :
Создайте директорию для хранения ваших паролей:
Добавьте в поддержку для PMA:
Далее добавьте :
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All
Настраиваем дополнительную аутентификацию:
AuthType Basic AuthName "Login Required for Access" AuthUserFile /etc/htpasswd/.htpasswd Require valid-user
Укажите пароль:
И перезапустите Apache:
Теперь для доступа к PMA вам необходимо будет ввести ещё один пароль, как показано выше.