Как установить и защитить phpmyadmin на ubuntu 18.04/20.04
Содержание:
- Как войти в phpMyAdmin
- Шаг 3 — Обеспечение безопасности phpMyAdmin
- Безопасность
- Установка phpMyAdmin
- Step 2 — Adjusting User Authentication and Privileges
- Installing PhpMyAdmin
- Step 1 — Installing phpMyAdmin
- Использование phpMyAdmin для веб-разработки
- About
- Features
- Latest News
- Шаг 1 — Установка phpMyAdmin
- Создание администратора MySQL
- Шаг 2 — Настройка аутентификации и прав пользователя
- Настройка phpmyadmin
- Работа с базой данных через phpMyAdmin
- Увеличьте размер файла импорта phpMyAdmin
Как войти в phpMyAdmin
Чтобы узнать, как запустить phpMyAdmin, войдите в панель управления хостингом и следуйте соответствующей инструкции:
Как узнать пароль базы данных
Логин и пароль от базы данных можно увидеть в конфигурационном файле сайта.
Информация о конфигурационных файлах, хранящих настройки подключения к базам данных популярных CMS. Если вашей CMS нет в списке или ваш сайт создан без использования CMS, обратитесь к разработчику сайта или на тематические форумы.
Доступ в phpMyAdmin по прямой ссылке в ISPmanager и Plesk
В ISPmanager и Plesk присутствует возможность доступа в phpMyAdmin по прямой ссылке (cPanel такой функционал отсутствует). Это удобно, когда необходимо дать доступ разработчикам сайта. Ссылка для входа в phpMyAdmin выглядит следующим образом:
База данных u1234567_default
Для подключения к phpMyAdmin вы можете использовать уже созданную базу данных u1234567_default (где u1234567 — ваш логин хостинга), которая автоматически создаётся при заказе хостинга. Реквизиты доступа к данной БД приведены в статье Пароли для доступа к хостингу.
Внимание
База данных u1234567_default создаётся только при заказе тарифных планов от «Host-0» и выше. Если вы заказывали тарифный план «Host-Lite», а потом повысили его до более высокого, данная БД не создаётся
Вам необходимо создать БД самостоятельно по инструкции:
Шаг 3 — Обеспечение безопасности phpMyAdmin
Из-за своей вездесущности phpMyAdmin часто становится мишенью для атак, поэтому вам нужно дополнительно позаботиться о предотвращении несанкционированного доступа. Один из способов — это размещение шлюза перед всем приложением с помощью встроенного в Apache функционала авторизации и аутентификации через .
Чтобы сделать это, вы должны сначала активировать перезапись файла , изменив файл конфигурации Apache вашей установки phpMyAdmin.
Воспользуйтесь предпочитаемым текстовым редактором для редактирования файла , который находится в каталоге конфигурации Apache. Мы будем использовать :
Добавьте директиву в раздел файла конфигурации , например:
/etc/apache2/conf-available/phpmyadmin.conf
После добавления этой строки сохраните и закройте файл. Если вы использовали для редактирования файла, нажмите , , а затем .
Перезапустите Apache, чтобы изменения вступили в силу.
Теперь, когда вы активировали использование файлов для вашего приложения, вам нужно создать этот файл для реализации этого уровня защиты.
Чтобы этот файл мог использоваться, он должен находиться в каталоге приложения. Вы можете создать необходимый файл и открыть его в текстовом редакторе с привилегиями root с помощью следующей команды:
В этом файле введите следующую информацию:
/usr/share/phpmyadmin/.htaccess
Вот что означает каждая из этих строк:
- : эта строка указывает тип аутентификации, используемый вами. Данный тип подразумевает использование аутентификации по паролю с помощью файла пароля.
- : данная строка устанавливает сообщение для диалогового окна аутентификации. Вы должны указывать только общую информацию, чтобы неавторизованные пользователи не получили никакой информации о том, что вы защищаете.
- : указывает местоположение файла пароля, который будет использоваться для аутентификации. Он должен находиться вне обслуживаемых каталогов. Скоро мы создадим этот файл.
- : указывает, что только выполнившие аутентификацию пользователи должны иметь доступ к этому ресурсу. Благодаря этому параметру неавторизованные пользователи не смогут выполнить вход.
После завершения редактирования сохраните и закройте файл.
Вы использовали следующее местонахождение для вашего файла пароля . Теперь вы можете создать этот файл и передать его для первоначального пользователя с помощью утилиты :
Вам будет предложено выбрать и подтвердить пароль для пользователя, которого вы создаете. В результате будет создан файл с хэшированным паролем, который вы добавили.
Если вы хотите ввести дополнительного пользователя, вам нужно сделать это без флага , например:
Теперь, когда вы можете получить доступ к подкаталогу phpMyAdmin, вам будет предложено указать дополнительное имя учетной записи и пароль, которые вы только что задали:
После выполнения аутентификации в Apache вы перейдете на стандартную страницу аутентификации phpMyAdmin для ввода ваших учетных данных MySQL. Добавив дополнительный набор учетных данных, не используемый MySQL, вы обеспечиваете для вашей базы данных дополнительный слой защиты. Это желательно, поскольку в прошлом phpMyAdmin часто становился объектом использующих уязвимости атак.
Безопасность
Самое первое, что предстоит сделать, — использовать файлы веб-сервера Apache htaccess. Для начала нужно сообщить apache, что будет применяться специальный файл для настройки phpMyAdmin.
Для этого надо настроить файл конфигурации, расположенный по адресу /etc/apache2/conf-available/phpmyadmin.conf.
Нужно добавить особую директиву AllowOverride All. После изменения и сохранения файла необходимо снова перезапустить веб-сервер.
Теперь для настройки phpMyAdmin понадобится сам файл, в котором и будут определены правила доступа в панель управления. Он должен называться .htaccess и размещаться по пути /usr/share/phpmyadmin.
В нем указываются следующие параметры:
AuthName «Restricted Files»
Это. набор ключевых слов позволит осуществить следующее:
- Первая строка отвечает за характер авторизации. Параметр «базовый» означает, что войти можно будет по логину и паролю.
- Вторая определяет, какой текст будет показан вместо приветствия.
- В третьей строке указываются файл, в котором будет храниться пароль.
- Четвёртая сообщает системе, что только аутентифицированные пользователи могут сюда попасть.
После создания файла нужно его сохранить. Не забудьте это сделать.
Установка phpMyAdmin
Установка может быть выполнена из репозитория (для CentOS 7) или путем загрузки портала с сайта разработчика (CentOS 8 или CentOS 7). Рассмотрим оба варианта.
а) Установка из репозитория
Данный вариант доступен только для CentOS 7.
Устанавливаем расширенный репозиторий EPEL:
yum install epel-release
Устанавливаем phpMyAdmin:
yum install phpmyadmin
* если мы увидим ошибку «пакета с названием phpmyadmin не найдено», проверяем еще раз наличие установленного репозитория epel.
б) Установка вручную
Данный способ универсальный — он подходит для CentOS 8 и CentOS 7.
Устанавливаем пакеты, необходимые для скачивания и распаковки архива:
yum install wget unzip
Переходим на сайт разработчика phpMyAdmin и копируем ссылку на нужную нам версию, например, последнюю:
Воспользовавшись скопированной ссылкой, скачиваем архив с установочными файлами:
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.zip
* на момент написания инструкции, последняя стабильная версия была 4.9.1.
Распаковываем скачанный архив:
unzip phpMyAdmin-*-all-languages.zip
Создаем каталог для phpmyadmin, например:
mkdir /usr/share/phpMyAdmin
… и переносим в него содержимое распакованного архива:
mv phpMyAdmin-*-all-languages/* /usr/share/phpMyAdmin/
Задаем владельца для каталога:
chown -R apache:apache /usr/share/phpMyAdmin
* как правило, сервис, которых обрабатываем php-запросы работает от пользователя apache.
Step 2 — Adjusting User Authentication and Privileges
When you installed phpMyAdmin onto your server, it automatically created a database user called phpmyadmin which performs certain underlying processes for the program. Rather than logging in as this user with the administrative password you set during installation, it’s recommended that you log in as either your root MySQL user or as a user dedicated to managing databases through the phpMyAdmin interface.
Configuring Password Access for the MySQL Root Account
In Ubuntu systems running MySQL 5.7 (and later versions), the root MySQL user is set to authenticate using the plugin by default rather than with a password. This allows for some greater security and usability in many cases, but it can also complicate things when you need to allow an external program — like phpMyAdmin — to access the user.
In order to log in to phpMyAdmin as your root MySQL user, you will need to switch its authentication method from to one that makes use of a password, if you haven’t already done so. To do this, open up the MySQL prompt from your terminal:
Next, check which authentication method each of your MySQL user accounts use with the following command:
In this example, you can see that the root user does in fact authenticate using the plugin. To configure the root account to authenticate with a password, run the following command. Be sure to change to a strong password of your choosing:
Note: The previous statement sets the root MySQL user to authenticate with the plugin. , is MySQL’s preferred authentication plugin, as it provides more secure password encryption than the older, but still widely used, .
However, some versions of PHP don’t work reliably with . PHP has reported that this issue was fixed as of PHP 7.4, but if you encounter an error when trying to log in to phpMyAdmin later on, you may want to set root to authenticate with instead:
Then, check the authentication methods employed by each of your users again to confirm that root no longer authenticates using the plugin:
You can see from this output that the root user will authenticate using a password. You can now log in to the phpMyAdmin interface as your root user with the password you’ve set for it here.
Configuring Password Access for a Dedicated MySQL User
Alternatively, some may find that it better suits their workflow to connect to phpMyAdmin with a dedicated user. To do this, open up the MySQL shell once again:
If you have password authentication enabled for your root user, as described in the previous section, you will need to run the following command and enter your password when prompted in order to connect:
From there, create a new user and give it a strong password:
Note: Again, depending on what version of PHP you have installed, you may want to set your new user to authenticate with instead of :
Then, grant your new user appropriate privileges. For example, you could grant the user privileges to all tables within the database, as well as the power to add, change, and remove user privileges, with this command:
Following that, exit the MySQL shell:
You can now access the web interface by visiting your server’s domain name or public IP address followed by :
Log in to the interface, either as root or with the new username and password you just configured.
When you log in, you’ll see the user interface, which will look something like this:
Now that you’re able to connect and interact with phpMyAdmin, all that’s left to do is harden your system’s security to protect it from attackers.
Installing PhpMyAdmin
Step 1: Install PhpMyAdmin
First, you’ll follow a simple best practice: ensuring the list of available packages is up to date before installing anything new.
Then it’s a matter of just running one command for installation via apt-get:
Step 2: Basic Configuration
As the installation runs you’ll be asked a few simple questions regarding the basic configuration of PhpMyAdmin.
At the first screen, select apache2 by using the space bar, then hit enter to continue.
At the second screen, which asks “configure the database for PhpMyAdmin with dbconfig-common?”, select Yes, then hit enter to continue.
In this third screen enter your administrative password this is also the MySQL root (admin) user password, hit enter to continue.
Finally, at the fourth screen set the password you’ll use to log into PhpMyAdmin, hit enter to continue, and confirm your password.
Step 3: Finish the Configuration of Apache
For a refresher on editing files with vim see: New User Tutorial: Overview of the Vim Text Editor
Add the following to the bottom of the file:
Then exit and save the file with the command :wq.
Restart Apache 2 with the following command:
Verify that PhpMyAdmin is working by visiting the_IP_of_your_server/PhpMyAdmin. For example http://127.0.0.1/phpmyadmin
Note
By default, the username is PhpMyAdmin and the password will be the one set in the very last screen of Step 2.
Step 1 — Installing phpMyAdmin
You can use APT to install phpMyAdmin from the default Ubuntu repositories.
As your non-root sudo user, update your server’s package index:
Following that you can install the package. Along with this package, the official documentation also recommends that you install a few PHP extensions onto your server to enable certain functionalities and improve performance.
If you followed the prerequisite LAMP stack tutorial, several of these modules will have been installed along with the package. However, it’s recommended that you also install these packages:
- : A module for managing non-ASCII strings and convert strings to different encodings
- : This extension supports uploading files to phpMyAdmin
- : Enables support for the GD Graphics Library
- : Provides PHP with support for JSON serialization
- : Allows PHP to interact with different kinds of servers using different protocols
Run the following command to install these packages onto your system. Please note, though, that the installation process requires you to make some choices to configure phpMyAdmin correctly. We’ll walk through these options shortly:
Here are the options you should choose when prompted in order to configure your installation correctly:
-
For the server selection, choose
Warning: When the prompt appears, “apache2” is highlighted, but not selected. If you do not hit to select Apache, the installer will not move the necessary files during installation. Hit , , and then to select Apache.
- Select when asked whether to use to set up the database
- You will then be asked to choose and confirm a MySQL application password for phpMyAdmin
Note: Assuming you installed MySQL by following , you may have decided to enable the Validate Password plugin. As of this writing, enabling this component will trigger an error when you attempt to set a password for the phpmyadmin user:
To resolve this, select the abort option to stop the installation process. Then, open up your MySQL prompt:
Or, if you enabled password authentication for the root MySQL user, run this command and then enter your password when prompted:
From the prompt, run the following command to disable the Validate Password component. Note that this won’t actually uninstall it, but just stop the component from being loaded on your MySQL server:
Following that, you can close the MySQL client:
Then try installing the package again and it will work as expected:
Once phpMyAdmin is installed, you can open the MySQL prompt once again with or and then run the following command to re-enable the Validate Password component:
The installation process adds the phpMyAdmin Apache configuration file into the directory, where it is read automatically. To finish configuring Apache and PHP to work with phpMyAdmin, the only remaining task in this section of the tutorial is to is explicitly enable the PHP extension, which you can do by typing:
Afterwards, restart Apache for your changes to be recognized:
phpMyAdmin is now installed and configured to work with Apache. However, before you can log in and begin interacting with your MySQL databases, you will need to ensure that your MySQL users have the privileges required for interacting with the program.
Использование 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 и выполните запрос. Вот несколько примеров:
Надеемся, что данная статья была для вас полезной.
About
phpMyAdmin is a free software tool written in PHP,
intended to handle the administration of MySQL
over the Web. phpMyAdmin supports a wide range of operations on MySQL and
MariaDB. Frequently used operations (managing databases, tables,
columns, relations, indexes, users, permissions, etc) can be performed via the
user interface, while you still have the ability to directly execute any SQL statement.
phpMyAdmin comes with a wide range of documentation and users are welcome to
update our wiki pages to share ideas and
howtos for various operations. The phpMyAdmin team will try to help you if
you face any problem; you can use a variety of support channels to get
help.
phpMyAdmin is also very deeply documented in a book written by one of the developers
– Mastering phpMyAdmin for
Effective MySQL Management, which is available in English and .
To ease usage to a wide range of people, phpMyAdmin is being translated into 72 languages and supports both LTR
and RTL languages.
phpMyAdmin is a mature project with a stable and flexible code
base; you can find out more about the project and its history and the awards it earned. When the project turned 15, we published a celebration page.
The phpMyAdmin project is a member of Software Freedom Conservancy. SFC is a not-for-profit organization that helps promote, improve, develop, and defend Free, Libre, and Open Source Software (FLOSS) projects.
Features
- Intuitive web interface
- Support for most MySQL features:
- browse and drop databases, tables, views, fields and indexes
- create, copy, drop, rename and alter databases, tables, fields and
indexes - maintenance server, databases and tables, with proposals on server
configuration - execute, edit and bookmark any
SQL-statement, even
batch-queries - manage MySQL user accounts and privileges
- manage stored procedures and triggers
- Import data from
CSV and
SQL - Export data to various formats:
CSV,
SQL,
XML,
PDF,
ISO/IEC 26300 —
OpenDocument Text and Spreadsheet,
Word,
LATEX
and others - Administering multiple servers
- Creating graphics of your database layout in various formats
- Creating complex queries using Query-by-example (QBE)
- Searching globally in a database or a subset of it
- Transforming stored data into any format using a set of predefined
functions, like displaying BLOB-data as image or download-link - And much more…
Latest News
- 2021-06-19: Infrastructure security improvements
- 2021-06-04: phpMyAdmin 5.1.1 is released
- 2021-02-24: phpMyAdmin 5.1.0 is released
- 2020-10-15: phpMyAdmin 4.9.7 and 5.0.4 are released
- 2020-10-10: phpMyAdmin 4.9.6 and 5.0.3 are released
Шаг 1 — Установка phpMyAdmin
Вы можете использовать APT для установки phpMyAdmin из репозиториев Ubuntu по умолчанию.
Обновите индекс пакетов вашего сервера от имени пользователя без прав root с привилегиями sudo:
После этого вы можете установить пакет . Помимо этого пакета, официальная документация также рекомендует установить несколько расширений PHP на ваш сервер для возможности использования определенной функциональности и улучшения производительности.
Если вы выполнили предварительное требования руководства для стека LAMP, ряд из этих модулей уже был установлен вместе с пакетом . Однако рекомендуется также установить следующие пакеты:
- : модуль для работы с строками, не поддерживающими кодировку ASCII, и конвертации таких строк в другие кодировки
- : это расширение поддерживает загрузку файлов в phpMyAdmin
- : поддержка библиотеки GD Graphics
- : поддержка сериализации JSON для PHP
- : позволяет PHP взаимодействовать с разными типами серверов, используя разные протоколы
Запустите следующую команду для установки этих пакетов в систему
Обратите внимание, что процесс установки требует, чтобы вы ответили на ряд вопросов для корректной настройки phpMyAdmin. Мы кратко пробежимся по этим параметрам:
Здесь представлены параметры, которые вы должны выбрать при запросе для корректной настройки вашей установки:
-
Для выбора сервера вы можете выбрать
Предупреждение. При появлении запроса вариант «apache2» выделен, но не выбран. Если вы не нажмете для выбора Apache, установщик не будет перемещать необходимые файлы при установке. Нажмите , затем , а потом для выбора Apache. - Выберите при ответе на вопрос о том, необходимо ли использовать для настройки базы данных.
- Затем вам будет предложено выбрать и подтвердить пароль приложения MySQL для phpMyAdmin
Примечание. Если вы установили MySQL, следуя указаниям , вы, возможно, активировали плагин Validate Password. На момент написания этого руководства активация этого компонента будет вызывать ошибку при попытке задать пароль пользователя phpmyadmin:
Для устранения этой проблемы выберите опцию abort для остановки процесса установки. Затем откройте командную строку MySQL:
Либо, если вы активировали аутентификацию по паролю для пользователя с правами root MySQL, запустите эту команду, а затем введите пароль при запросе:
Из командной строки запустите следующую команду для отключения компонента Validate Password
Обратите внимание, что в этом случае выполняется не удаление, а простая остановка загрузки компонента на ваш сервер MySQL:. После этого вы можете закрыть клиент MySQL:
После этого вы можете закрыть клиент MySQL:
Затем попробуйте еще раз установить пакет , после чего все будет работать ожидаемым образом:
После установки phpMyAdmin вы можете открыть командную строку MySQL еще раз с помощью или , а затем запустить следующую команду для повторной активации компонента Validate Password:
В процессе установки будет добавлен файл конфигурации phpMyAdmin в каталог , где он будет считываться автоматически. Для завершения настройки Apache и PHP для работы с phpMyAdmin выполните последнюю оставшуюся задачу этого раздела руководства и явно активируйте расширение PHP с помощью следующей команды:
Перезапустите Apache для вступления изменений в силу.
Теперь phpMyAdmin установлен и настроен для работы с Apache. Однако, прежде чем вы сможете войти и начать взаимодействие с базами данных MySQL, вам нужно убедиться, что у пользователей MySQL есть права, необходимые для взаимодействия с программой.
Создание администратора MySQL
В системах Debian под управлением MariaDB 10.1 (и более поздних версий) пользователь root по умолчанию настроен на использование аутентификации .
Плагин аутентифицирует пользователей, которые подключаются с локального хоста через файл сокета Unix. Это означает, что вы не можете пройти аутентификацию как root, указав пароль.
Вместо изменения метода аутентификации для корневого пользователя MySQL мы создадим нового административного пользователя MySQL. Этот пользователь будет иметь те же привилегии, что и пользователь root, и будет настроен на использование аутентификации .
Мы будем использовать этого пользователя для входа в панель управления phpMyAdmin и выполнения административных задач на нашем сервере MySQL или MariaDB.
Начните с входа на сервер MySQL в качестве пользователя root:
Из оболочки MySQL выполните следующие команды, которые создадут нового пользователя-администратора и предоставят соответствующие разрешения:
Мы назвали администратора . Вы можете использовать любое имя, только не забудьте установить надежный пароль.
Шаг 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, осталось только установить более жесткие правила безопасности системы, чтобы защитить ее от атак.
Настройка phpmyadmin
Пхпадмин готов к работе сразу после установки, дополнительные настройки не обазательны. Приведу полезный пример при использовании — ограничение доступа к phpmyadmin средствами веб-сервера. Для использования панели необходимо будет не только знать имя учетной записи mysql, но и пользователя и пароль для доступа непосредственно к панели.
Рассмотрим сначала пример с веб сервером apache. Будем использовать стандартное средство для ограничения доступа к каталогу с помощью .htaccees. Создадим такой файл в папке со скриптами phpmyadmin:
# mcedit /usr/share/phpMyAdmin/.htaccess
AuthName "Enter Password" AuthType Basic Require valid-user AuthUserFile "/usr/share/phpMyAdmin/.htpasswd"
Теперь создадим файл с авторизационными данными:
# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user password
user | имя пользователя |
password | пароль |
Чтобы авторизация заработала, необходимо в файле /etc/httpd/conf.d/phpMyAdmin.conf в разделе Directory добавить параметр AllowOverride, чтобы получилось вот так:
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 Require all granted AllowOverride All </Directory>
Перезапускаем апач и проверяем настройку. При обращении по адресу веб панели, должно выскочить окошко с авторизацией:
Проделаем то же самое на nginx. Так же создаем файл с паролем .htaccess:
# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user password
Если у вас на сервере не установлен httpd, то скорее всего вы увидите ошибку:
-bash: htpasswd: command not found
Необходимой утилиты нет в системе. Установим htpasswd на centos:
# yum install -y httpd-tools
Снова создаем файл с паролем:
# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user1 password Adding password for user user1
Отредактируем конфигурационный файл nginx, добавив в секцию server {} новый location:
location /phpmyadmin/ { auth_basic "Enter password"; auth_basic_user_file /usr/share/phpMyAdmin/.htpasswd; }
Сохраняете конфиг, перезапускаете nginx и проверяете доступ к странице. Должно выскочить такое же, как и с apache, окно авторизации.
Рассмотрим еще несколько полезных настроек phpmyadmin. После входа в панель, в разделе Настройки вы увидите сообщение:
Ваши настройки будут сохранены только для текущей сессии. Для постоянного хранения требуется подключение модуля хранения настроек phpMyAdmin.
Подключим необходимый модуль для сохранения настроек. Модуль это громко сказано, нам всего лишь необходимо создать отдельную базу данных для хранения настроек и активации некоторых расширенных возможностей. Файл для создания базы данных хранится в директории phpmyadmin по адресу /usr/share/phpMyAdmin/sql/create_tables.sql. Копируем содержимое этого файла и выполняем его тут же, в phpmyadmin в разделе SQL:
Теперь можно идти в настройки и изменять их. Я обычно отключаю проверку новой версии. Они выходят достаточно часто, обновлять мне все равно их лень, поэтому информация о новых версиях мне не нужна. Так же отключаю логотип, можно загрузить свой. Сами полистайте настройки, посмотрите, что вам интересно. Все пункты неплохо задокументированы, можно почитать за что отвечают. Иногда бывает полезно вывести отдельный столбец в списке таблиц с информацией по дате создания и обновления. Это настраивается в разеделе Настройки -> Основная панель -> Структура базы данных.
Если вы хотите подключиться к удаленному mysql серверу с помощью phpmyadmin, воспользуйтесь скриптом настройки подключения по адресу http://ip-адрес-сервера/phpmyadmin/setup/.
Работа с базой данных через phpMyAdmin
- Имя — имя столбца
- Тип — тип столбца
- Длина — длина столбца
- По умолчанию — значение, которое будет подставлено по умолчаню, если Вы это указали
- Сравнение — как будет осуществляться поиск данных
- Атрибуты — атрибуты столбца
- Null — может ли столбец быть пустым
- Индекс — индекс поля
- A_I — является ли данный столбец с автоматическим приращением
- Комментарий — комментарий к данному столбцу
Также мы должны указать тип столбцов. После ввода всех необходимых данных жмем “Сохранить”
- выполнить SQL-запрос — это делается в меню “SQL”
- осуществить поиск данных в нашей базе — это делается в меню “Поиск”
- можем осуществить запрос по шаблону, который можно сделать в меню “Запрос по шаблону”
- Экспортировать данные базы в различные форматы — это делается в меню “Экспорт”
- Импортировать данные в базу в меню “Импорт”
- Установить привилегии на базу данных: создать пользователей для данной базы и настроить их доступ к данным — это выполняется в меню “Привилегии”
- Можем удалить таблицу. Для выбрать необходимую таблицу и нажать “Удалить”
Увеличьте размер файла импорта phpMyAdmin
Хотя это не одна из настроек phpMyAdmin (это настройка PHP), она является одной из наиболее часто встречающихся при экспорте баз данных в виде файлов. По умолчанию PHP позволяет импортировать файлы размером до 2 МБ. Чтобы увеличить это, отредактируйте . Прежде чем начать вносить изменения, сделайте резервную копию файла:
Сначала убедитесь, что загрузка файлов разрешена. Найдите следующую строку и убедитесь, что установлено значение .
Далее, чтобы увеличить размер импорта файла, найдите следующую строку и установите желаемый размер файла (например, 32M):
Затем найдите следующую строку и установите желаемый размер данных POST (пример: 32M):
Наконец, найдите следующую строку и установите ограничение памяти скрипта на желаемое значение (пример: 128M):
«М» в «128M» относится к МБ или мегабайтам
Обратите внимание, что у вас должно быть не менее 128M доступной памяти. Это должно увеличить размер импорта файлов для PHP и phpMyAdmin
Перезагрузите Apache, чтобы настройки вступили в силу:
Возможно, вам придется выйти и заново войти в phpMyAdmin.