GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo alimentar consultas mysql desde bash

La razón por la que su intento no funcionó fue porque < espera un nombre de archivo y lo alimentaste con una cadena. Tendrías que hacer algo como

echo "YOURQUERYSTRINGHERE">tmpfile
mysql --host=localhost --user=user --password=password dbname <tmpfile

sugerencia de ken de

 mysql  --host=localhost --user=user --password=password -e "QUERY" dbname

puede funcionar, pero si intenta usar variables bash en su consulta, puede fallar en la expansión de parámetros. por ejemplo

QUERY="select * from $MYTABLE WHERE name=\"[email protected]\";"
mysql --host=localhost --user=user --password=password -e "$QUERY" mydbname

puede que no haga lo que espera. Una opción es usar

echo "$QUERY"|mysql --host=localhost --user=user --password=password mydbname

que funciona si la cadena de consulta contiene citas apropiadas. Otra opción es el documento "aquí" como lo sugiere dogbane.


Intente usar un documento aquí como este:

mysql --host=localhost --user=user --password=password << END

CREATE USER 'testuser'@'localhost' IDENTIFIED BY  'jakdJxct8W';
CREATE DATABASE IF NOT EXISTS 'testuser_dev' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON  'testuser_dev' . * TO  'testuser'@'localhost';
CREATE DATABASE IF NOT EXISTS 'testuser_qa' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON  'testuser_qa' . * TO  'testuser'@'localhost';

END

Alternativamente, coloque todos sus comandos en un archivo de texto y ejecútelo:

mysql --host=localhost --user=user --password=password < commands.sql

Prueba así:

echo "select 1" | mysql

mysql --batch --silent -e 'SHOW TABLES';

Lote y silencioso son útiles si planea canalizar la salida


Linux
  1. Cómo borrar un comando específico del historial de Bash en Linux

  2. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql

  3. ¿Cómo puedo obtener valores únicos de una matriz en Bash?

  4. ¿Cómo obtener elementos de la lista en bash?

  5. ¿Cómo puedes eliminar duplicados del historial de bash?

Cómo eliminar un usuario de una base de datos MySQL en cPanel

Cómo hacer una copia de seguridad de una sola base de datos MySQL desde la línea de comandos

Cómo hacer una copia de seguridad de todas las bases de datos MySQL desde la línea de comandos

¿Cómo restaurar la base de datos MySQL desde phpMyAdmin?

¿Cómo cambiar la contraseña de usuario de MySQL desde cPanel?

¿Cómo descargar la copia de seguridad de la base de datos MySQL desde cPanel?