miércoles, 25 de marzo de 2020

phpMyAdmin en Debian 11 (testing Bullseye)

phpMyAdmin es una excelente herramienta de administración de bases de datos (MySQL / MariaDB)  vía web. Para poder utilizar phpmyadmin se requiere disponer del servidor web Apache2 con soporte PHP y el gestor de bases de datos MySQL ó MariaDB. 

Permite que cualquier usuario de la base de datos que disponga de algún permiso, acceda y haga uso de dichos permisos. Identificándose con el usuario administrador de la base de datos (root) o con cualquier otro usuario que disponga de todos los privilegios, estarán habilitadas todas las características de phpmyadmin.

A partir de Debian 11 (testing Bullseye) el usuario administrador root no esta habilitado como administrador en la base de datos (MariaDB) por tanto al intentar entrar en phpMyAdmin como root nos devolverá el siguiente error: mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'. Pero en este manual solucionaremos esto y haremos al usuario root administrador de la base de datos, pero con una contraseña distinta a la del sistema, aunque se puede usar la misma contraseña del sistema operativo.


Instalar el Servidor de de bases de Datos (MySQL / MariaDB) y el soporte PHP

En Debian testing Bullseye ya no se usa MySQL se usa MariaDB, que es compatible con MySQL.
Para instalar MariaDB y php en Debian GNU/Linux, usamos los siguientes comandos:

apt install mariadb-server mariadb-client php

mariadb-server
mariadb-client
php

El proceso de instalación te solicitará una contraseña para el usuario root (puede ser distinta a la del sistema operativo, es mas se recomienda que sea distinta, nosotros pondremos la contraseña que queramos.) 

Una vez instalado y configurado en Debian GNU/Linux, el sistema deja arrancado el servidor de bases de datos MariaDB

El siguiente comando es por si tuvieras que arrancarlo de forma manual.

service mysql start

El siguiente comando por si tuvieras que reiniciarlo de forma manual.

service mysql restart

El siguiente comando por si tuvieras que pararlo de forma manual.

service mysql stop




Instalación de phpmyadmin
 

Para poder hacer uso de phpmyadmin, previamente necesitamos tener instalado un servidor LAMP (Linux, Apache, MariaDB, PHP), en este otro manual se explica como instalarlo. Aunque en el punto anterior hemos explicado de forma muy ligera como instalarlo en Debian 11 testing Bullseye

Enlace http://usuariodebian.blogspot.com.es/2012/04/lamp-servidor-web.html

La instalación de phpmyadmin la realizamos con la ayuda del programa synaptic o bien desde consola usando el siguiente comando:

# apt install phpmyadmin


En este manual hacemos la instalación desde la consola de comandos. Logeados como usuario administrador (root)

NOTA: Para la instalación desde consola, en el asistente usaremos la 4 teclas de cursores, la tecla Tabulador, y la Tecla Barra espaciadora y la tecla intro o enter

Empezamos a instalar el paquete phpmyadmin.



Nos muetra todas las dependencias que necesita para instalar phpmyadmin, y nos pregunta si ¿Deseamos continuar? Pulsamos la tecla S para continuar.



Ahora el instalador ha detectado los servidores web que tenemos instalado en el sistema, y nos pregunta en que servidor web deseamos configurar phpmyadmin, Seleccionamos con la barra espaciadora apache2 y pulsamos Intro (para Aceptar)



La siguiente pregunta es: ¿Desea configurar la base de datos para phpmyadmin con dbconfig-common?, por defecto esta seleccionado SI, tan solo tenemos que pulsar intro para continuar.



En la siguiente pantalla tenemos que introducir la contraseña que usaremos para el usuario phpmyadmin que se esta creando durante este proceso de instalación. (ponemos la contraseña que queramos), y pulsamos intro (Aceptar)



ahora tenemos que volver a escribir la misma contraseña, para asegurarnos que hemos escrito la contrraseña correcta. Pulsamos intro (Aceptar)



y esta es la ultima pregunta que nos hace el instalador.
Observarmos como  después de una rato, el instalador finaliza correctamente.



Ahora ya podemos ejecutar phpmyadmin desde un navegador web.
Colocando la dirección ip del servidor seguido de phpmyadmin. En este ejemplo seria: http://192.168.1.35/phpmyadmin

El usuario creado por defecto durante la instalación es: phpmyadmin
La contraseña es la que introducimos antes, durante la instalación

NOTA: el usuario creado por defecto llamado: phpmyadmin, no tiene derechos de administrador de la base de datos. Por tanto debemos crear un usuario nuevo, o activar el usuario root para tener derechos de administrador en la gestión de la bases de datos de mariadb.






 Activar usuario root en phpmyadmin 

Si intentamos acceder a phpmyadmin como usuario root, nos devolvera un mensaje de acceso no autorizado en el parte superior del login:
EL servidor MYSQL no autorizó su acceso
y la parte inferior del login, nos dice lo mismo, pero esta vez nos detalla, el usuario root no esta autorizado en phpmyadmin.
mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'




Vamos a realizar el proceso para autorizar el acceso de root en phpmyadmin.

NOTA: 1- aunque el o los comandos introducidos en este apartado se indique mysql, no confundiros, pues simplemente es una referencia a la bases de datos mariadb. 2- En cada captura de pantalla, al final de cada comando veremos un rectangulo blanco, ese rectangula indica solamente la posición del cursor. 3- tras cada comando pulsamos la tecla intro o enter

Abrimos una consola de comando, e iniciaremos sesión en el servidor de bases de datos como root.
Utilizaremos el siguiente comando para actualizar la tabla user dentro de la base de datos de mariadbusando el siguiente comando:

mysql -u root -p




Tenemos que poner la contraseña de root para acceder a la base de datos de mariabd.



Una vez logeados en la base de datos mariadb, procedemos a activar el acceso de root en mariadb.



El siguiente comando que vamos a usar es:

use mysql;



podemos observar como ha realizado los cambios en la base de datos de mariadb



Utilizaremos el siguiente comando para actualizar la contraseña en la tabla user dentro de la base de datos mariadb. 
Tened en cuenta que teneis que cambiar los numeros 1234567 por la contraseña que cada uno elija (en este ejemplo hemos usado: 1234567).

update user set password=PASSWORD('1234567') where User='root';



Vemos como hemos actualizado la contraseña para el usuario root en la base de datos de mariadb, NO tiene porque ser la misma contraseña del sistema, es mas, por seguridad se aconseja usar una contraseña distinta



Ahora usamos el siguiente comando para actualizar todo lo relacionado con el usuario root.

update user set plugin=' ' where User='root';



vemos como se actualiza correctamente.



usamos el siguiente comando para actualizar y grabar todos los privilegios al usuario root

flush privileges;


vemos como se a realizado correctamente.



El próximo paso consistirá en salir de la sesión actual de mariadb, para ello escribimos el siguiente comando y pulsamos intro.

quit



El la siguiente captura de pantalla podemos ver como hemos salido de mariadb



Ahora ya podemos logearnos como usuario root para gestionar las bases de datos creadas con phpmyadmin en el gestor de bases de datos mariadb.

Vemos como nos hemos logeados como root y como podemos ver y administrar las cuentas de usuarios dentro de phpMyAdmin







 Resumen de los comandos usados para activar root en phpmyadmin 


Abrimos una consola de comandos e introducimos cada una de las siguientes lineas y al final de cada línea pulsamos intro.

Tened en cuenta que teneis que cambiar los numeros 1234567 por la contraseña que cada uno elija.

mysql -u root -p
use mysql;

update user set password=PASSWORD('1234567') where User='root';
update user set plugin=' ' where User='root';
flush privileges;

quit

 

 

 Comandos a usar en Debian 11 stable  

 

Abrimos una consola de comandos e introducimos cada una de las siguientes lineas y al final de cada línea pulsamos intro.

usuariodebian@debian11stable: ~ $  su -
usuariodebian@debian11stable: ~ #  mysql -u root
MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'contraseña';
MariaDB [(none)]> FLUSH PRIVILEGES;


Una vez introducidos los comandos anteriores ya podemos ir a phpmyadmin y logearnos con usuario: root y con la contraseña que hemos puesto arriba.



Agregar usuarios administradores a MySQL

1- mysql -u root -p
2- CREATE USER 'nuevo_usuario'@'%' IDENTIFIED BY 'password';
3- GRANT ALL PRIVILEGES ON *.* TO 'nuevo_usuario'@'%' WITH GRANT OPTION;
4- FLUSH PRIVILEGES;
5- quit

 

Cambiar nuevo_usuario por el nombre del nuevo usuario a dar de alta
Cambiar password por la nueva contraseña
En lugar de usar % se puede usar localhost



Borrar usuarios de MySQL

mysql -u root -p

DROP USER 'usuario'@'localhost';

 

Cambiar usuario por el nombre del usuario a dar de baja



Lista de usaurios de MySQL

mysql -u root -p

SELECT USER FROM mysql.user;

SELECT USER, host FROM mysql.user;






.

No hay comentarios: