Error: mysql_secure_installation command not found

Cuando se instala el gestor de bases de datos MariaDB, una de las primeras cosas que se suele hacer es ejecutar el script mysql_secure_insallation, que permite aumentar la seguridad de la instalación de varias formas, como podemos leer en la página correspondiente de la documentación de MySQL.

Como dicho script tiene su origen en MySQL, como es evidente por su nombre, los desarrolladores de MariaDB decidieron a partir de la versión 10.5 que mejor creaban su propio script, que es mariadb-secure-installation. Aunque en su página de documentación dicen que aún puede ejecutarse dicho script usando el nombre original, porque hay un enlace simbólico que relaciona ambos scripts, lo cierto es que si, por ejemplo, instalas Debian 12 de la rama testing, dicho enlace no existe, por lo que es posible que nos surja cierto desconcierto al no encontrar un script tan conocido y usado. Que al renombrar dicho script no solo se haya cambiado el nombre mysql por el de mariadb, sino que también se hayan sustituido los guiones bajos por guiones normales, no ayuda mucho a la hora de encontrar este nuevo script.

Así que habrá que acostumbrarse al nuevo nombre y ejecutar mariadb-secure-installation cada vez que instalemos una nueva inistancia de MariaDB.

Instalar MySQL Workbench en Debian 10

Para poder instalar el programa MySQL Workbench en Debian 10 hay que instalar previamente una serie de dependencias sin las cuales no funciona correctamente. El proceso de instalación es como sigue:

  1. Descargar el paquete deb de la página de MySQL Workbench, necesitamos el correspondiente a Ubuntu 18.04 y la versión 8.0.23:

2. Actualizamos el sistema e instalamos las siguientes librerías:

sudo apt update && sudo apt upgrade
sudo apt install libatkmm-1.6-1v5 libglibmm-2.4-1v5 libgtkmm-3.0-1v5 libsigc++-2.0-0v5 libtinfo5 libcairomm-1.0-1v5 libpangomm-1.4-1v5 libpcrecpp0v5 libproj-dev proj-bin gnome-keyring

3. Instalamos el paquete en el directorio donde lo hayamos descargado:

sudo dpkg -i mysql-workbench-community_8.0.23-1ubuntu18.04_amd64.deb

En mi caso, como uso KDE, necesité instalar el gnome-keyring porque si no me daba error al intentar guardar la password para la conexión.

Hay que recordar que tenemos que tener la versión MySQL Server 5.7, pues versiones posteriores dan problemas.

Error #2006 – MySQL server has gone away importando archivo en PhpMyAdmin

Minientrada

Utilizando un entorno WAMP (Windows 10, Apache, MySQL, PHP), cuando intento importar un archivo con el volcado de una base de datos en MySQL utilizando PhpMyAdmin me encuentro con que la carga se detiene y se genera el error «#2006 – MySQL server has gone away».
El archivo es bastante grande, y aunque he puesto los límites de memoria y de tamaño de archivo suficientemente altos en el archivo php.ini, está claro que también es necesario modificar la configuración de mysql para poder hacer la carga. El truco está en modificar la línea
max_allowed_packet = 1M
en el archivo <directorio de WAMP>/mysql/bin/my.ini dejándola como
max_allowed_packet = 10M

Curiosamente, este error nunca me había dado cuando he trabajado en Linux, debe de ser que la configuración por defecto de mySQL en Linux ya viene preparada para cualquier eventualidad 🙂

Lo he visto en Stack OVerflow (como casi todas las soluciones)

Quitar el arranque automático de apache y mysql

Una vez instalado nuestro entorno de desarrollo LAMP, si nuestro equipo es viejito es posible que, para ahorrar recursos, queramos que los servicios apache y mysql no se inicien automáticamente en el arranque, sino arrancarlos manualmente cuando los necesitemos. En las distribuciones basadas en Debian el procedimiento sería como sigue:

(Entrada modificada el 19/8/2015 siguiendo las indicaciones de este blog, que están basadas en este otro blog. Las instrucciones que tenía mi entrada anteriormente eran incorrectas, muchas gracias a ambos por haberme sacado de mi error.)

Para el servidor Apache:
Ejecutar:
sudo update-rc.d apache2 disable
De esta manera se deshabilita el servicio y por lo tanto su arranque automático.
Para volver a habilitar el servicio:
sudo update-rc.d apache2 enable
No es recomendable usar el comando
sudo update-rc.d -f apache2 remove
porque lo que hace este comando es modificar los directorios /etc/rc0.d, /etc/rc1.d, etc. hasta el /etc/rc6.d (uno para cada uno de los niveles de ejecución) borrando los enlaces simbólicos que controlan el arranque de los servicios. Por ejemplo, si listamos el contenido del directorio /etc/rc6.d después de hacer el comando remove veremos que han desaparecido los ficheros /etc/rc6.d/K01apache2 y /etc/rc6.d/K01mysql. Si quisiéramos recuperar los ficheros borrados, habría que lanzar el comando:
sudo update-rc.d apache2 defaults

Tenemos que tener en cuenta que es posible que cuando posteriormente se instale una actualización de apache, nuévamente nos encontremos con que éste vuelve a arrancarse automáticamente en el inicio. En este enlace comentan que la forma de evitar ésto es lanzando el comando:
sudo update-rc.d apache2 stop 80 0 1 2 3 4 5 6 .
Pero yo no lo he probado.

Para el servicio de mySQL:
En este caso hay que editar el fichero /etc/init/mysql.conf y modificar la línea con
start on runlevel [2345]
para dejarla de la manera siguiente:
start on (never and runlevel [2345])

Para arrancar estos servicios, ejecutamos:
sudo service apache2 start
sudo service mysql start