Servidor MariaDB + phpMyAdmin ============================= .. image:: _images/mariadb.png :align: right :width: 250px Después de instalar nuestro Servidor Web con Lighttpd y PHP, vamos a completarlo instalando el Servidor de Bases de Datos MariaDB y phpMyAdmin como interfaz de gestión para la manipulación de bases de datos. Instalación de MariaDB ---------------------- .. code:: console sudo apt-get install mariadb-server mariadb-client -y Cuando finalice la instalación, podemos asegurarlo ejecutando el siguiente script: .. code:: console mysql_secure_installation Las respuestas deben de quedar así: .. code-block:: console Answer all the questions as shown below: Change the root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y Gestión del servicio en MariaDB ------------------------------- 1. Arrancar el servidor MariaDB:: sudo systemctl start mariadb.service o sudo systemctl start mariadb 2. Parar el servidor MariaDB:: sudo systemctl stop mariadb.service o sudo systemctl stop mariadb 3. Reiniciar el servidor MariaDB:: sudo systemctl restart mariadb.service o sudo systemctl restart mariadb 4. Recargar el servidor MariaDB:: sudo systemctl reload mariadb.service o sudo systemctl reload mariadb 5. Ver el estado del servidor MariaDB:: sudo systemctl status mariadb.service o sudo systemctl status mariadb 6. Activar en el arranque el servidor MariaDB:: sudo systemctl enable mariadb.service o sudo systemctl enable mariadb Instalación de phpMyAdmin ------------------------- .. image:: _images/phpmyadmin.jpg :align: right :width: 250px PHPMyAdmin es una popular herramienta gratuita para la gestión sencilla de bases de datos MySQL/MariaDB a través de interface Web. Instalar PHPMyAdmin en Raspberry Pi es muy sencillo. Antes, deberemos tener instalado un servidor Web como Lighttpd con PHP y una base de datos como MariaDB. Para instalar PHPMyAdmin desde una consola de comandos hacemos, .. code:: console sudo apt update sudo apt install phpmyadmin php-mbstring php-gettext Se nos hará una serie de preguntas para configurar PHPMyAdmin. En primer lugar, seleccionamos como servidor *lighttpd* pulsando ESPACIO y después ENTER. A continuación, se nos pedirá la contraseña para 'root' para la base de datos, y una contraseña para acceder PHPMyAdmin. Ahora creamos un nuevo usuario en la base de datos, que usaremos con PHPMyAdmin. Para ello, accedemos a MariaDB como root .. code:: console sudo mariadb -u root -p Y empleamos el siguiente comando para crear un usuario 'username' y contraseña 'password' (sustituir por los datos que queráis). .. code:: console GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'; Salimos de la consola de MariaDB haciendo, .. code:: console quit Finalmente reiniciamos lighttpd: .. code:: console sudo service lighttpd restart Ahora podemos comprobar que todo funciona correctamente abriendo un navegador web y acudiendo a la dirección http://DirecciónIP/phpmyadmin Posible error +++++++++++++ Si tras instalar el servidor MariaDB (MySQL), e intentar acceder a phpMyAdmin con la cuenta de root, obtenemos este error: ``ERROR 1698: Access denied for user 'root'@'localhost'`` Para corregirlo, ejecutaremos los siguientes comandos y sentencias: Tendremos que ejecutar el cliente de MariaDB (MySQL) como superusuario precedido del comando sudo: .. code:: console $ sudo mysql -u root -p Una vez que hemos accedido al servidor, seleccionamos la base de datos mysql: .. code-block:: console MariaDB [(none)]> USE mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Listamos el contenido de los campos user y plugin: .. code-block:: console MariaDB [mysql]> SELECT user, plugin FROM user; +------------+-------------+ | user | plugin | +------------+-------------+ | root | unix_socket | | phpmyadmin | | +------------+-------------+ 2 rows in set (0.00 sec) Actualizamos de unix_socket a mysql_native_password: .. code-block:: console MariaDB [mysql]> UPDATE user SET plugin="mysql_native_password" WHERE user="root"; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 Comprobamos los cambios listando de nuevo los campos user y plugin: .. code-block:: console MariaDB [mysql]> SELECT user, plugin FROM user; +------------+-----------------------+ | user | plugin | +------------+-----------------------+ | root | mysql_native_password | | phpmyadmin | | +------------+-----------------------+ 2 rows in set (0.00 sec) Forzamos al servidor a recargar los privilegios de los usuarios, logrando que los cambios surtan efecto tras la ejecución de la sentencia sin necesidad de reiniciar el servidor: .. code-block:: console MariaDB [mysql]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) Cerramos la conexión con el servidor y cerramos el cliente: .. code-block:: console MariaDB [mysql]> exit; Ahora, probamos sin sudo: .. code-block:: console $ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 44 Server version: 10.3.17-MariaDB-0+deb10u1 Raspbian 10 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> Correcto, ya podemos acceder con el usuario ``root`` tanto en la consola de MariaDB como en phpMyAdmin