Ejecutar consulta de MySQL en bash sin el mensaje Warning: Using a password on the command line interface can be insecure.

La siguiente solución la encontré a partir de la necesidad de ejecutar una consulta dentro de MySQL en la bash de Linux sin que su resultado imprima en la pantalla el mensaje “Warning: Using a password on the command line interface can be insecure.“, ya que el resultado seria guardado en un software de monitoreo(Zabbix en este caso).

how to import the binary dump sql in MySQL 5.7 - Database Administrators  Stack Exchange
Mensaje “Warning: Using a password on the command line interface can be insecure.”

Encontrar esta solución me costo bastante, además con el requerimiento que fuese una solución practica ya que solo necesitaba ejecutar la sentencia sin la necesidad de programas de terceros o complejas configuraciones, con la siguiente linea de ejemplo pude solucionar esta necesidad:

MYSQL_PWD=PASSWORD mysql DBNAME -h SERVER_IP -u USER -N -e "SELECT * FROM user_table where id != 1"

De la linea anterior se interpreta lo siguiente: las primera parte donde se declara:
MYSQL_PWD=PASSWORD -> esta configurando el valor de la variable de entorno MYSQL_PWD, MySQL por defecto toma el valor de esta variable de entorno para la contraseña, así que al ejecutar la consulta tomara este valor por contraseña.

Modificadores “-N -e” -> Mientras tanto los modificadores se interpretan así:


--skip-column-names, -N” ->No escribir los nombres de las columnas en los resultados.

--execute=statement, -e statement “->

Ejecuta la sentencia y sale. El formato de salida por defecto es como el producido con –batch. Consulte
Sección 4.2.3.1, “Uso de opciones en la línea de comandos”, para algunos ejemplos. Con esta opción, mysql
no utiliza el archivo histórico.

Dejá una respuesta