- Steps to change root password in phpMyAdmin
- Conclusion
- Введение
- How to Set Root Password in phpMyAdmin
- Other Ways to Set MySQL Root Password
- Related Articles
- Комментарии
- How to Set Root Password on phpMyAdmin
- How to Set Root Password on phpMyAdmin
- More in How To
- Комментарии
- Возможные ошибки
- Зачем нужны пользователи
- Предоставление доступа пользователю MySQL
- Наследование привилегий
- Доступ к таблице
- Доступ к столбцу
- Просмотр привилегий пользователей MySQL
- Проверка текущих полномочий пользователя
- Проверка полномочий к данным
- Просмотр привилегий через системную БД mysql
- Просмотр глобальных привилегий
- Пользователи MySQL
- Имя пользователя MySQL
- Просмотр всех пользователей
- Создание нового пользователя MySQL
- FLUSH PRIVILEGES
- Удаление пользователя MySQL
- Создание дополнительного суперпользователя
- Отзыв полномочий у пользователя
- Смена пароля
- Обеспечение безопасности phpMyAdmin
- Установка phpMyAdmin
- Обратить внимание на Validate Password
- Удаление phpMyAdmin
- Работа с пользователями
- Заключение
Steps to change root password in phpMyAdmin



Step 4: Once you click on to that link, it will direct you to the Global privileges page, On that page, you will find the “Change Password” tab.

Step 5: Click the change password tab and enter your new password in the given text area. You can even click the “Generate Password” button to randomly display a password for you. Finally, click the “Go” button to apply the changes.

It will be like
$cfg[‘Servers’][$i][‘auth_type’] = ‘config’; $cfg[‘Servers’][$i][‘user’] = ‘root’; $cfg[‘Servers’][$i][‘password’] = ‘’;
Now changes the line as given below and enter your password,
$cfg[‘Servers’][$a][‘auth_type’] = ‘cookie’; $cfg[‘Servers’][$i][‘user’] = ‘root’; $cfg[‘Servers’][$i][‘password’] = ‘password_name’;


Conclusion
You may also like these articles
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit «Cookie Settings» to provide a controlled consent.
Введение
В статье речь пойдет о работе с пользователями открытой реляционной системы управления базами данных (СУБД) MySQL, появившейся в 1994 году. В 2008 году Sun Microsystems купил MySQL AB, а в 2010 уже Sun была поглощена Oracle. Эти продажи побудили авторов исходной СУБД создать форк — MariaDB, свободный от лицензионных ограничений текущего владельца и совместимый с Oracle MySQL. Помимо «Марии» известен другой форк, Percona, — от Петра Зайцева и Вадима Ткаченко. Оба форка совместимы с MySQL.
БД от Percona обладает дополнительными функциями, направленными на повышение производительности. Многие дистрибутивы (например, Red Hat) перешли на MariaDB из-за предсказуемой лицензионной политики. В своих проектах автор использует MariaDB.
Поскольку работа с пользователями задача больше административная и нерегулярная, рассмотрим наиболее надежный способ — через консоль.
That being said, let’s take a look at how to set MySQL Root password. I am going to show you 3 different ways of resetting the password.
How to Set Root Password in phpMyAdmin


On the next screen, click on the ‘Change password’. In the form, enter the password you want to set and click on the ‘Go’.

$cfg['Servers'][$i]['auth_type'] = 'cookie';
Other Ways to Set MySQL Root Password
If you want to try another way of changing a Root password, then first revert back the changes made in the config.inc.php file.
$cfg['Servers'][$i]['auth_type'] = 'config';
SET PASSWORD FOR root@localhost = PASSWORD('PASSWORD_HERE');The last option to reset the Root password is through the command line. For this, you again need to revert your changes of config.inc.php file.
If you have set the MySQL path in your environment then you can run the MySQL queries directly in the command prompt. If the path is not set, then open the terminal inside the MySQL installation directory. In my case, it’s path is D:\xampp\mysql\bin.
In the terminal, run the below command:
mysqladmin -u root password PASSWORD_HERE

Related Articles
If you liked this article, then please subscribe to our YouTube Channel for video tutorials.
Login without a password is forbidden by configuration (see AllowNoPassword)$cfg['Servers'][$i]['AllowNoPassword'] = false;$cfg['Servers'][$i]['AllowNoPassword'] = true;41 gold badges566 silver badges707 bronze badges
asked Apr 4, 2012 at 5:15
You can change the mysql root password by logging in to the database directly (mysql -h your_host -u root) then run
SET PASSWORD FOR root@localhost = PASSWORD('yourpassword');$cfg['Servers'][$i]['password'] = 'yourpassword';
Access denied for user 'user'@'localhost' (using password: YES)
answered Apr 4, 2012 at 6:00
1 gold badge13 silver badges20 bronze badges
Wish it helps!
Have a nice day!
31 gold badges191 silver badges308 bronze badges
answered Aug 13, 2012 at 7:30
Amigo Chan
7 silver badges6 bronze badges
I recently came across this very same issue Ubuntu 12.04. I just couldn’t seem to login with root & no password. I set the AllowNoPassword setting to TRUE in the config. Later I found out that I was editing the wrong config.inc.php file to add the AllowNoPassword setting.
Edit:
/etc/phpmyadmin/config.inc.php
Not:
/usr/share/phpmyadmin/config.inc.phpI believe the first is the debian local config file, which will override the usr version.
answered May 31, 2012 at 1:20
1 silver badge12 bronze badges

<?php
$cfg['blowfish_secret'] = 'wertyukj';
$cfg['Servers'][1]['auth_type'] = 'cookie';
$cfg['Servers'][1]['user'] = 'root';
$cfg['Servers'][1]['password'] = 'wertyukjndwy3cn3';
$cfg['Servers'][1]['AllowNoPassword'] = false;
$cfg['Servers'][1]['extension'] = 'mysql';
?>- blowfish_secret – это произвольная фраза, которая нужна для шифрования паролей в куках. Надежнее поменять ее на любую другую, только не стандартную.
- auth_type – это тип авторизации, который может принимать 2 значения: config и cookie:
- config – указывает на то, что логин/пароль будут браться из этого файла (две следующие строчки user и password). При таком режиме, успешный вход будет всегда, когда вы или кто-то другой просто зайдет на ваш домен, где размещается также phpmyadmin и может получит возможность натворить там всяких пакостей.
- cookie – указывает на то, что логин/пароль будут спрашиваться каждый раз, как кто-то переходит по адресу, где лежит phpmyadmin. Правильный пароль будет храниться в зашифрованном виде в куках на вашем компьютере.
- user и password – это имя пользователя (в нашем случае должен быть root) и пароль. В этом конфигурационном файле они добавлены просто для примера и при использовании cookie их можно вообще удалить.
- AllowNoPassword – может принимать значения true (истина) и false (ложь). Собственно разрешается вход без пароля (true) или нет (false)
- extension – может принимать значение mysql и mysqli. Первое нужно указывать в случае если вы используете phpmyadmin в связки MySQL ниже 4.1.3. Второй если используете версию MySQL выше 4.1.3.
Теги:
и MySQL
Комментарии
How to Set Root Password on phpMyAdmin

How to Set Root Password on phpMyAdmin
- Open phpMyAdmin on your localhost.
- This is the direct URL of the phpMyAdmin: http://localhost/phpmyadmin/.
- On your phpMyAdmin Dashboard and click on the User accounts tab.

- Look for the row that contains User name: root & Host name: localhost. You can see that there is No for Password.
- Click on the Edit privileges link, as shown below.

- Click on the Change password button.

- Choose the Password option.
- Enter a Password.
- On Password Hashing choose Native MySQL authentication.
- Click on the Go button.

- You can see that the password for User name root has been set successfully.

- Now open phpMyAdmin (http://localhost/phpmyadmin/) again.
You may see this error:
- Cannot connect: invalid settings.
- mysqli::real_connect(): (HY000/1045): access denied for user ‘root’@’localhost’ (using password: NO).
- phpMyAdmin tried to connect to the MYSQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.

- Now go to XAMPP installation folder.
- Click on the phpMyAdmin folder.
- Look for the file config.inc.php and open it on the Notepad or PHP Editor.

Look for these two lines:
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['password'] = '';![Look for the two lines auhtentication type and password Look for these two lines:$cfg['Servers'][$i]['auth_type'] = 'config';$cfg['Servers'][$i]['password'] = '';](https://www.meersworld.net/wp-content/uploads/2023/04/How-To-Set-Root-Password-In-phpMyAdmin-10.webp)
- Replace ‘config‘ with ‘cookie‘.
- Enter your password in the line: $cfg[‘Servers’][$i][‘password’] = ‘Enter_Password_Here’; that you have created for the root user on phpMyAdmin.
- Save the config.inc.php file.
![Update the config.inc.php file. Replace 'config' with 'cookie'. Enter your password in the line: $cfg['Servers'][$i]['password'] = ''; that you have created for the root user on phpMyAdmin.](https://www.meersworld.net/wp-content/uploads/2023/04/How-To-Set-Root-Password-In-phpMyAdmin-11.webp)
- Now go back to the Error page and click on the Retry to connect button or open phpMyAdmin (http://localhost/phpmyadmin/) again.

- You can see that the error has been removed and phpMyAdmin is asking for the root username and password.

- After login you can access to your phpMyAdmin Dashboard.

- Go to User accounts on your phpMyAdmin dashboard. You can see that Password is Yes for the root User Name.

More in How To

Пароль на MySQL-сервер – это такая вещь, которую если не записал, то когда он понадобиться, то не вспомнишь. Этот пароль на тех web-проектах, которые работают давно и не подвергаются частым модернизациям в плане кода, практически не используется. И установленный стойкий, серьезный пароль, благополучно забывается и когда требуется его вспомнить становиться невыносимо тяжко это сделать.
Конечно же никто не мешает записать этот пароль. Но что делать если MySQL-сервер с паролем есть, самого пароля нет?
Изменить пароль на сервер базы данных MySQL можно только непосредственно имея доступ к консоли самого сервера. В любом другом случае процесс восстановления является проблематичным.
В консоли сервера нужно выполнить 2 команды, который позволят изменить пароль и получить доступ к MySQL. Обычно суперпользователя root не используют для нужд сайта и изменение его пароля не приведет к каким-либо серьезным неполадкам, но автору приходилось работать с некоторыми сайтами, где работала с базой данных посредством учетной записи root, что просто ужасно.
Для того, чтобы сменить пароль все команды, приведенные ниже выполняются от имени пользователя операционной системы root.
- Для начала тормозим MySQL-сервер. Для FreeBSD эта команда вот:
/usr/local/etc/rc.d/mysql-server stop - После запускаем его в режиме проверки привилегий, который позволяет изменять пароль без ввода старого. Запустить в этом режиме можно командой:
mysqld_safe --skip-grant-tables & - Далее не дожидаясь окончания выполнения, исполняем команду:
mysql -u rootВ моем случае я запустил эту команду после строки:
120503 18:59:47 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
- Далее выбираем таблицу mysql, где хранятся все пароли и имена пользователей:
USE mysql; - Далее меняем сам пароль командой:
UPDATE user SET password=PASSWORD("superpassword") WHERE User='root';где superpassword – это и есть ваш новый пароль. Его, кстати, можно заменить на любой другой.
- Сохраняем все изменения:
FLUSH PRIVILEGES; - и выходим из консоли MySQL:
quit - После этого стоит только перезагрузить MySQL:
/usr/local/etc/rc.d/mysql-server restartи можно заходить под новым паролем.
После этих простых манипуляций пароль пользователя root для доступа к MySQL-серверу будет вам известен и его уж после этого можно и записать.
Комментарии
Возможные ошибки
В процессе изменения типа аутентификации учетной записи root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';Возможно возникновение ошибки:
Plugin caching_sha2_password in not loadedЭто вызвано тем, что в свежих версиях mysql тип аутентификации по умолчанию:
caching_sha2_password Это не позволит произвести удаленное подключение к mysql и вызовет ошибку плагина:
caching_sha2_passwordВозможным вариантом решения является установка типа аутентификации:
mysql_native_passwordКоманда выглядит так:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';Теперь возможен доступ пользователя к mysql с localhost.
Для подключения с нескольких хостов необходимо изменить команду:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';Для применения изменений необходимо использовать:
FLUSH PRIVILEGES;Зачем нужны пользователи
После установки MySQL технически мы можем подключаться из нашего ПО от имени root’а, но это не безопасно. Работая с информационными системами, мы всегда должны помнить и соблюдать принцип наименьших привилегий. Для более безопасной работы и создаются пользователи БД. Привилегии должны быть предоставлены пользователю строго только те, что действительно необходимы.
Администратору MariaDB в работе требуется создавать учетные записи «обычных» пользователей с ограниченным доступом к данным, определять права доступа, при необходимости — создавать дополнительных (привилегированных) суперпользователей. Также важно проводить аудит — просматривать выданные полномочия и корректировать их по мере необходимости.
Предоставление доступа пользователю MySQL
Доступ предоставляется командой:
GRANT SELECT ON `some_db`.* TO 'some_user'@'somehost.somedomain';
FLUSH PRIVILEGES;Создадим пользователя и БД (часто БД называют схемой, в терминах MySQL):
CREATE SCHEMA test_DB;
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'secret';Команда для предоставления доступа будет выглядеть так:
GRANT SELECT ON `test_db`.* TO 'test_user'@'localhost';
FLUSH PRIVILEGES;Наследование привилегий
В предыдущем примере наш пользователь сможет только читать данные из базы test_db, но передать свои права другому пользователю не сможет. Используя GRANT OPTION, мы можем позволить ему сделать это. Тогда пользователь получит возможность передавать другим то, что разрешено ему самому.
GRANT SELECT, INSERT, UPDATE, DELETE ON `some_db`.* TO 'some_user'@'somehost' WITH GRANT OPTION;Из соображений безопасности использовать GRANT OPTION небезопасно! В случае компрометации учетной записи злоумышленник сможет не только получить доступ к данным, но и сделать закладку в виде копии учетной записи.
Доступ к таблице
Примеры выше дают доступ ко всей БД. Часто доступ должен быть ограничен строго определенным набором таблиц:
GRANT SELECT ON `test_db`.`table_users` TO 'test_user'@'localhost';Выполнение команды приведет к ошибке, т.к. этой таблицы еще нет.
CREATE TABLE `test_db`.`table_users` (id INT AUTO_INCREMENT PRIMARY KEY, user_name VARCHAR(16) NOT NULL, password VARCHAR(32));и повторим предоставление доступа:
GRANT SELECT ON `test_db`.`table_users` TO 'test_user'@'localhost';Доступ к столбцу
Предоставляется перечислением столбцов:
GRANT SELECT (id, user_name), UPDATE (user_name) ON `test_db`.`table_users` TO 'test_user'@'localhost';В этом примере пользователю дано право читать идентификатор, читать и менять имя пользователя, а парольный хэш доступен не будет.
Просмотр привилегий пользователей MySQL
Часто возникает задача выяснить полномочия учетной записи или определить, кому дан доступ к базе или таблице. Остановимся на этом подробнее.
Проверка текущих полномочий пользователя
Нам пригодится команда:
SHOW GRANTS FOR 'someuser'@'somehost.somedomain';SHOW GRANTS FOR 'appuser'@'srv14.example.com';
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for appuser@srv14.example.com |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'appuser'@'srv14.example.com' IDENTIFIED BY PASSWORD '*F4E0A7F0B10264F70558CF07A4ABD4E041182D6E' |
| GRANT SELECT ON `net_database`.* TO 'appuser'@'srv14.example.com' |
+--------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)Проверка полномочий к данным
Через read-only БД information_schema доступно множество метаданных — системной информации. Информация о доступе на БД (схемы), таблицы и столбцы доступны в таблицах schema_privileges, table_privileges и column_privileges. Работа с ними — обычные SQL-запросы:
SELECT * FROM information_schema.schema_privileges;
SELECT * FROM information_schema.table_privileges;
SELECT * FROM information_schema.column_privileges;
SELECT * FROM information_schema.column_privileges WHERE GRANTEE="'test_user'@'localhost'";MariaDB [information_schema]> select * from information_schema.column_privileges WHERE GRANTEE="'test_user'@'localhost'";
+-------------------------+---------------+--------------+------------+-------------+----------------+--------------+
| GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | PRIVILEGE_TYPE | IS_GRANTABLE |
+-------------------------+---------------+--------------+------------+-------------+----------------+--------------+
| 'test_user'@'localhost' | def | test_db | table_usr | id | INSERT | NO |
| 'test_user'@'localhost' | def | test_db | table_usr | user_name | UPDATE | NO |
+-------------------------+---------------+--------------+------------+-------------+----------------+--------------+
2 rows in set (0.001 sec)Просмотр привилегий через системную БД mysql
Аналогичных результатов можно добиться, обратившись к системным таблицам напрямую.
Информация о пользователях:
SELECT * FROM mysql.user;Привилегии на базы данных:
SELECT * FROM mysql.db;Права, назначенные на таблицы:
SELECT * FROM mysql.tables_priv;И на столбцы:
SELECT * FROM mysql.columns_priv;Просмотр глобальных привилегий
Глобальные полномочия смотрим здесь:
SELECT * FROM information_schema.user_privileges;Пользователи MySQL
Имя пользователя MySQL
В MySQL имя пользователя состоит из 2-х частей: имени пользователя (обязательно) и хоста (может быть опущена, тогда она означает ‘%’):
Примеры записи хоста:
somehost.example.com
localhost
127.0.0.1
::1
192.168.123.%
192.168.123.0/255.255.255.0
%Примечание: имена и адреса следует указывать в том формате, в каком возвращает системный DNS resolver сервера.
Просмотр всех пользователей
Давайте проверим, какие пользователи есть в нашей БД. Выведем основную информацию о пользователях:
SELECT host, user, password, password_expired FROM mysql.user;Когда список получается большим, мы можем добавить фильтр (в примере — по хостам, начинающимся с msk):
SELECT host, user, password FROM mysql.user WHERE host LIKE 'msk%';Или использовать в конце модификатор \G, оптимизирующий вывод для отображения в консоли:
SELECT host, user, password FROM mysql.user\G;SELECT * FROM mysql.user[\G];Создание нового пользователя MySQL
Новый пользователь в MySQL добавляется командой:
CREATE USER 'some_user'@'somehost.somedomain' IDENTIFIED BY 'some_password';Теперь давайте создадим нашего первого пользователя:
CREATE USER 'test'@'localhost' IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;Полезная возможность — добавление комментария:
CREATE USER 'test'@'localhost' COMMENT 'My 1st user for app';FLUSH PRIVILEGES
Удаление пользователя MySQL
Для удаления пользователя используется команда
DROP USER 'some_user'@'somehost.somedomain';На нашем предыдущем примере:
DROP USER 'test'@'localhost';
FLUSH PRIVILEGES;Создание дополнительного суперпользователя
Это не лучшая практика, но бывают ситуации, когда у СУБД несколько хозяев и всем нужно быть суперпользователями. В MySQL добавить пользователя с root-правами можно так:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;Отзыв полномочий у пользователя
Команда отзыва привилегий функционально обратна GRANT, “TO” заменяется на “FROM”:
REVOKE SELECT ON `somedb`.* FROM 'someuser'@'somehost';
REVOKE ALL PRIVILEGES ON `somedb`.* FROM 'someuser'@'somehost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'someuser'@'somehost';Смена пароля
ALTER USER 'test_user'@'localhost' IDENTIFIED BY 'new_password';Обеспечение безопасности phpMyAdmin
Если к серверу есть хоть какой-то доступ из интернета или ненадежной сети, необходимо обеспечить безопасность, добавив авторизацию.
Требуется создать файл .htaccess, который является конфигурационным файлом web-сервера Apache. Он дает возможность управлять web-сервером и настройками web-приложения с помощью директив, без изменения основного файла конфигурации web-сервера. В данной инструкции будет использован текстовый редактор nano.
AuthType Basic
Authname "Restricted Content"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user sudo nano /usr/share/phpmyadmin/.htaccessAuthType Basic — авторизация по паролю;
Authname «Restricted Content» — сообщение для окна авторизации;
Теперь необходимо установить пароль учетной записи.
sudo htpasswd -c /etc/phpmyadmin/.htpasswd user sudo htpasswd -c /etc/phpmyadmin/.htpasswd selectel и дважды вводим пароль.
Adding password for user selectel <Directory /usr/share>
AllowOverride All
Require all granted
</Directory>По умолчанию файл выглядит так:
<Directory /> Options FollowSymLinks AllowOverride None Require all denied
</Directory>
<Directory /usr/share> AllowOverride None Require all granted
</Directory>
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>Вносим изменения в необходимую директиву:
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory> # This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream's suggested way to configure the web server. This is because Debian's
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.
# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
# /etc/apache2/
# |-- apache2.conf
# | `-- ports.conf
# |-- mods-enabled
# | |-- *.load
# | `-- *.conf
# |-- conf-enabled
# | `-- *.conf
# `-- sites-enabled
# `-- *.conf
#
#
# * apache2.conf is the main configuration file (this file). It puts the pieces
# together by including all remaining configuration files when starting up the
# web server.
#
# * ports.conf is always included from the main configuration file. It is
# supposed to determine listening ports for incoming connections which can be
# customized anytime.
#
# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
# directories contain particular configuration snippets which manage modules,
# global configuration fragments, or virtual host configurations,
# respectively.
#
# They are activated by symlinking available configuration files from their
# respective *-available/ counterparts. These should be managed by using our
# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
# their respective man pages for detailed information.
#
# * The binary is called apache2. Due to the use of environment variables, in
# the default configuration, apache2 needs to be started/stopped with
# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
# work with the default configuration.
# Global configuration
#
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the Mutex documentation (available
# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"
#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#Mutex file:${APACHE_LOCK_DIR} default
#
# The directory where shm and other runtime files will be stored.
#
DefaultRuntimeDir ${APACHE_RUN_DIR}
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog ${APACHE_LOG_DIR}/error.log
#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl:warn"
#
LogLevel warn
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include list of ports to listen on
Include ports.conf
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory /> Options FollowSymLinks AllowOverride None Require all denied
</Directory>
<Directory /usr/share> AllowOverride All Require all granted
</Directory>
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
#
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht"> Require all denied
</FilesMatch>
#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file), because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.confСохраняем, перечитаем конфигурацию Apache2, отправкой команды:
sudo systemctl reload apache2Если сервер пока не в активной работе можно перезапустить демона командой:
sudo systemctl restart apache2После ввода верных учетных данных авторизация проходит успешно.
Установка phpMyAdmin
Первый шаг — установка модуля расширения php-mbstring. Mbstring предоставляет функции для работы с многобайтными строками, которые облегчают обработку многобайтовых кодировок в php.
sudo apt install php-mbstring -yВывод успешной установки:
vlan48@apachi:~$ sudo apt install php-mbstring -y
[sudo] password for vlan48:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed: libonig5 php7.4-mbstring
The following NEW packages will be installed: libonig5 php-mbstring php7.4-mbstring
0 upgraded, 3 newly installed, 0 to remove and 27 not upgraded.
Need to get 541 kB of archives.
After this operation, 1709 kB of additional disk space will be used.
Get:1 http://mirror.selectel.ru/ubuntu focal/universe amd64 libonig5 amd64 6.9.4-1 [142 kB]
Get:2 http://mirror.selectel.ru/ubuntu focal-updates/universe amd64 php7.4-mbstring amd64 7.4.3-4ubuntu2.6 [397 kB]
Get:3 http://mirror.selectel.ru/ubuntu focal/universe amd64 php-mbstring all 2:7.4+75 [2012 B]
Fetched 541 kB in 0s (12.1 MB/s)
Selecting previously unselected package libonig5:amd64.
(Reading database ... 45001 files and directories currently installed.)
Preparing to unpack .../libonig5_6.9.4-1_amd64.deb ...
Unpacking libonig5:amd64 (6.9.4-1) ...
Selecting previously unselected package php7.4-mbstring.
Preparing to unpack .../php7.4-mbstring_7.4.3-4ubuntu2.6_amd64.deb ...
Unpacking php7.4-mbstring (7.4.3-4ubuntu2.6) ...
Selecting previously unselected package php-mbstring.
Preparing to unpack .../php-mbstring_2%3a7.4+75_all.deb ...
Unpacking php-mbstring (2:7.4+75) ...
Setting up libonig5:amd64 (6.9.4-1) ...
Setting up php7.4-mbstring (7.4.3-4ubuntu2.6) ...
Creating config file /etc/php/7.4/mods-available/mbstring.ini with new version
Setting up php-mbstring (2:7.4+75) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.6) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.6) ... sudo apt install phpmyadmin -y Обратить внимание на Validate Password
Открыть консоль управления MySQL:
sudo mysqlЕсли активна аутентификация по паролю суперпользователя root, команда будет выглядеть так:
mysql -u root -pТеперь отправляем следующую команду:
UNINSTALL COMPONENT "file://component_validate_password";Это действие произведет отключение плагина Validate Password.
Покинем консоль MySQL, команда:
exitПродолжим установку. После отправки команды в терминал появится окно установщика, в котором потребуется ответить на ряд вопросов. Навигация в установщике осуществляется посредством использования клавиш Up down, выбор пунктов кнопка «Пробел», переход ниже — Tab. Ввод выбранного ответа — Enter.
На первый вопрос про используемый web-сервер, необходимо ответить — apache2.
Подтвердим созданный ранее пароль:
Вывод успешной работы программы:
vlan48@apachi:~$ sudo apt -y install phpmyadmin
[sudo] password for vlan48:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages: www-browser php-recode php-gd2 php-pragmarx-google2fa php-bacon-qr-code php-samyoul-u2f-php-server
Recommended packages: php-curl php-gd php-bz2 php-zip php-tcpdf
The following NEW packages will be installed: phpmyadmin
0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded.
Need to get 4426 kB of archives.
After this operation, 27.2 MB of additional disk space will be used.
Get:1 http://mirror.selectel.ru/ubuntu focal/universe amd64 phpmyadmin all 4:4.9.5+dfsg1-2 [4426 kB]
Fetched 4426 kB in 0s (34.8 MB/s)
Preconfiguring packages ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
Selecting previously unselected package phpmyadmin.
(Reading database ... 46341 files and directories currently installed.)
Preparing to unpack .../phpmyadmin_4%3a4.9.5+dfsg1-2_all.deb ...
Unpacking phpmyadmin (4:4.9.5+dfsg1-2) ...
Setting up phpmyadmin (4:4.9.5+dfsg1-2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf
Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version
Creating config file /etc/phpmyadmin/config-db.php with new version
checking privileges on database phpmyadmin for phpmyadmin@localhost: user creation needed.
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql... done.
dbconfig-common: flushing administrative password
apache2_invoke: Enable configuration phpmyadminУстановка завершена. Прежде чем пойти далее, необходимо произвести проверку работоспособности на данном этапе, чтобы в случае возникновения проблем, их можно было решить с наименьшими трудозатратами.
ip_address/phpmyadminДля учетной записи root по умолчанию применяется доступ с использованием плагина auth_socket. Изменим это на аутентификацию с использованием пароля. В данном случае необходимо изменить тип аутентификации на аутентификацию с использованием пароля.
Откроем консоль MySQL:
sudo mysqlПроизведем проверку таблицы пользователей, чтобы увидеть метод аутентификации для каждого пользователя:
SELECT user,plugin,host FROM mysql.user; +-------------------------+----------------------------------+------------+
| user | plugin | host |
+-------------------------+----------------------------------+------------+
| debian-sys-maint | caching_sha2_password | localhost |
| mysql.infoschema | caching_sha2_password | localhost |
| mysql.session | caching_sha2_password | localhost |
| mysql.sys | caching_sha2_password | localhost |
| phpmyadmin | caching_sha2_password | localhost |
| root | auth_socket | localhost |
+------------------------+----------------------------------+--------------+
7 rows in set (0.00 sec)Исходя из данных таблицы следует, что аутентификация пользователя root происходит с использованием плагина auth_socket.
Для изменения отправим следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';Password добавляем свой.
Вывод работы команды:
Query OK, 0 rows affected (0.03 sec)В случае возникновения ошибки Plugin caching_sha2_password in not loaded следует обратиться к разделу «Возможные ошибки» в конце статьи.
SELECT user,plugin,host FROM mysql.user; +-----------------------+-----------------------------------+-----------+
| user | plugin | host |
+------------------------+----------------------------------+-----------+
| debian-sys-maint | caching_sha2_password | localhost |
| mysql.infoschema | caching_sha2_password | localhost |
| mysql.session | caching_sha2_password | localhost |
| mysql.sys | caching_sha2_password | localhost |
| phpmyadmin | caching_sha2_password | localhost |
| root | caching_sha2_password | localhost |
+------------------------+---------------------------------+-------------+
7 rows in set (0.00 sec)Теперь у пользователя root тип аутентификации — caching_sha2_password.
Удаление phpMyAdmin
Удаление происходит с использованием этих команд:
sudo apt remove phpmyadmin -yОтвечаем на все вопросы положительно.
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required: dbconfig-common dbconfig-mysql libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore libxslt1.1 php php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts php-symfony-var-exporter php-twig php-twig-extensions php-xml php7.4 php7.4-xml
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED: phpmyadmin
0 upgraded, 0 newly installed, 1 to remove and 41 not upgraded.
After this operation, 27.2 MB disk space will be freed.
(Reading database ... 54693 files and directories currently installed.)
Removing phpmyadmin (4:4.9.5+dfsg1-2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: dumping mysql database phpmyadmin to /var/tmp/phpmyadmin.phpmyadmin.2021-11-16-07.04.mysql.rTp4t6.
dbconfig-common: dropping mysql database phpmyadmin.
dropping database phpmyadmin: success.
verifying database phpmyadmin was dropped: success.
dbconfig-common: revoking privileges for user phpmyadmin on phpmyadmin.
revoking access to database phpmyadmin from phpmyadmin@localhost: success.
Conf phpmyadmin disabled.
apache2_invoke postrm:Disable configuration phpmyadminДля очистки неиспользуемых зависимостей применяем:
sudo apt-get autoremove Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED: dbconfig-common dbconfig-mysql libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore libxslt1.1 php php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts php-symfony-var-exporter php-twig php-twig-extensions php-xml php7.4 php7.4-xml
0 upgraded, 0 newly installed, 26 to remove and 41 not upgraded.
After this operation, 20.5 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 52976 files and directories currently installed.)
Removing dbconfig-mysql (2.0.13) ...
Removing dbconfig-common (2.0.13) ...
Removing libjs-sphinxdoc (1.8.5-7ubuntu3) ...
Removing libjs-jquery (3.3.1~dfsg-3) ...
Removing libjs-openlayers (2.13.1+ds2-7) ...
Removing libjs-underscore (1.9.1~dfsg-1ubuntu0.20.04.1) ...
Removing php-xml (2:7.4+75) ...
Removing php7.4-xml (7.4.3-4ubuntu2.7) ...
Removing libxslt1.1:amd64 (1.1.34-4) ...
Removing php (2:7.4+75) ...
Removing php-google-recaptcha (1.2.3-1) ...
Removing php-phpmyadmin-motranslator (5.0.0-1) ...
Removing php-phpmyadmin-shapefile (2.1-3) ...
Removing php-phpmyadmin-sql-parser (4.6.1-2) ...
Removing php-phpseclib (2.0.23-2) ...
Removing php-symfony-expression-language (4.3.8+dfsg-1ubuntu1) ...
Removing php-symfony-cache (4.3.8+dfsg-1ubuntu1) ...
Removing php-symfony-cache-contracts (1.1.8-1) ...
Removing php-psr-cache (1.0.1-2) ...
Removing php-symfony-service-contracts (1.1.8-1) ...
Removing php-psr-container (1.0.0-2) ...
Removing php-psr-log (1.1.2-1) ...
Removing php-symfony-var-exporter (4.3.8+dfsg-1ubuntu1) ...
Removing php-twig-extensions (1.5.4-1) ...
Removing php-twig (2.12.5-1) ...
Removing php7.4 (7.4.3-4ubuntu2.7) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.7) ...Перезапускаем демон apache2:
sudo service apache2 restartРабота с пользователями
sudo mysqlТак мы запустим работу с базой данных от имени администратора. Потребуется ввод пароля.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>Теперь необходимо добавить пользователя, а также его пароль. Выполнить это можно командой:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; В рабочем варианте отправленная команда выглядит так:
CREATE USER 'selectel'@'localhost' IDENTIFIED BY 's*****qq'; Query OK, 0 rows affected (0.02 sec)Добавим необходимые привилегии для созданного пользователя. В данном случае это будут все привилегии для всех баз данных на сервере:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; Если пользователю необходимо разрешить создавать пользователей и назначать им привилегии, необходимо добавить опции:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION; В данном примере в этом нет необходимости, поэтому будут только назначены полные привилегии для всех баз данных:
GRANT ALL PRIVILEGES ON *.* TO 'selectel'@'localhost'; Query OK, 0 rows affected (0.00 sec)Остается только применить изменения в настройках привилегий для этого служит команда:
FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec)В некоторых случаях может потребоваться удаление ранее созданного пользователя.
Это выполняется с использованием команды:
DROP USER 'user'@'localhost';Проверяем что пользователь существует:
SELECT user FROM mysql.user;Отправленная команда осуществляет вывод списка текущих пользователей.
+--------------------------+
| user |
+--------------------------+
| debian-sys-maint |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| phpmyadmin |
| root |
| selectel |
+---------------------------+
7 rows in set (0.01 sec)Убедившись что пользователь ‘selectel’ активен, можно произвести удаление:
DROP USER 'selectel'@'localhost'; Query OK, 0 rows affected (0.01 sec)Производим повторную проверку, убеждаясь в его отсутствии в списке.
+--------------------------+
| user |
+--------------------------+
| debian-sys-maint |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| phpmyadmin |
| root |
+---------------------------+
7 rows in set (0.00 sec)На этом настройка пользователей завершена. Для выхода из mysql необходимо отправить команду exit.
Заключение
Полученная информация поможет выполнить базовые операции при работе с пользователями: создание и удаление учетных записей, предоставление и отзыв привилегий, а также просмотр прав доступа.
Всем высоких скоростей, безаварийной работы и долгого аптайма!






