Para trabajar con bases de datos a través de la interfaz web, existe un editor web phpMyAdmin. Esta herramienta se conecta a una base de datos MySQL/MariaDB y muestra las bases de datos existentes, le permite crear otras nuevas, editar datos en tablas. En general, todo es igual a lo que se puede hacer en la consola mysql, pero mucho más conveniente y claro, especialmente cuando se trabaja con datos con frecuencia. Considere instalar phpMyAdmin en Ubuntu 20.04 con LAMP preinstalado.
Realizamos todas las configuraciones desde el usuario raíz, si está utilizando un usuario normal, agregue antes del comando sudo.
1. Instale los componentes necesarios y el propio editor de base de datos
apt install php-mbstring
apt install phpmyadmin
Durante el proceso de instalación, se le pedirá al usuario que seleccione para qué servidor web debe configurarse el editor.
- [*]apache2
- []lighttpd
En nuestro caso, un servidor con LAMP preinstalado y elegimos apache2.
A continuación, se propondrá crear una base de datos para el propio editor de bases de datos, donde se almacenarán las configuraciones de usuario del editor y otros datos necesarios para su funcionamiento. Aquí seleccionamos la opción Sí y en la siguiente ventana se le pedirá que cree una contraseña para el usuario phpmyadmin. Ingresamos la contraseña y la confirmamos en la siguiente ventana para evitar errores de ingreso.
Reinicie el servicio web para aplicar nuestra configuración de instalación:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
2. Ajustes básicos
Sigamos el enlace http://server-ip/phpmyadmin para verificar el trabajo, podemos ingresar el nombre de usuario y la contraseña de cualquier base de datos, por ejemplo, la recién creada, el nombre de usuario de phpmyadmin y la contraseña que configuramos. A veces, por conveniencia, se requiere trabajar con varias bases de datos a la vez, para mostrarlas en un solo usuario, debemos crear una y delegar los derechos del usuario raíz.
mysql -u root -p
CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost';
FLUSH PRIVILEGES;
Ahora, al autorizar bajo el usuario alldbuser, se muestran todas las bases de datos creadas en este servidor.
3. Configuración de seguridad
Para proteger al editor de la base de datos de adivinar contraseñas y posibles vulnerabilidades, agreguemos autorización en el nivel sin servidor.
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Agregue un usuario y especifique una contraseña para él:
htpasswd -c /etc/phpmyadmin/.htpasswd webdb-user
Para aplicar la configuración a nivel del servidor web, debe cambiar la configuración global en el archivo /etc/apache2/apache2.conf, el valor de AllowOverride era Todo, el bloque de configuración debería verse así:
AllowOverride All
Require all granted
Reinicie el servicio, dependiendo de su servidor web:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
Ahora, cuando haga clic en el enlace http://server-ip/phpmyadmin, aparecerá una ventana para ingresar su nombre de usuario y contraseña. En nuestro caso, el inicio de sesión será webdb-user. También puede agregar una configuración para que ni siquiera se solicite la entrada de contraseña de direcciones IP desconocidas, y el usuario reciba un mensaje Prohibido, agregue una línea al archivo y especifique sus direcciones IP estáticas:
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Allow from 77.88.99.11 22.33.44.55
La configuración está completa, le recomendamos encarecidamente que ingrese contraseñas solo usando el protocolo https con un certificado SSL, para evitar la interceptación de datos.