www.mamboteam.com
www.elsotanillo.net Advertisement
Home arrow Linux arrow Scripts Bash arrow Linux - Acceso a una BBDD mysql desde Bash
jueves, 20 noviembre 2008
 
 
  • Español
  • English
  • Français
Menu Principal
Home
Windows
Linux
Pictures
Blog
Noticias RSS
Enlaces de interes
Frases Celebres
Mi Clave GPG
Cursos LPI de la UOC
Utilidades
Search
Webmail
Diccionarios Online
El tiempo
Alicante, Spain
Temp: 14°C
Wind Chill: 14°C
Humidity: 67%
Speed: 19 km/h
Direct.: 20°
Barom.: 1023.0 mb
NNE
Show more details
Provided by: 
Web translation / Traduction web

british flagHi, I am translating some of the articles from Spanish to English. If you are interested in one particular article, drop me a line. Maybe you can help me. :)

Salut, je suis en train de traduire des articles d' Espagnol a Français, si tu veux un article, ecri moi. Peut-être tu peux m' aider. :)

Linux - Acceso a una BBDD mysql desde Bash PDF Print E-mail
User Rating: / 3
PoorBest 
Written by Juan Sierra Pons   
lunes, 22 mayo 2006
Compartelo:
Delicious
Meneame
Mister.Wong
There are no translations available

Muchas veces necesitamos sacar algun dato o incluso modificar algun dato de una base de datos BBDD mysql desde nuestra consola.

Dividiremos el Script en 2 partes:

  1. Definicion de los parametros para la conexion a la BBDD mysql.
  2. Conexion y operacion a realizar sobre la BBDD: SELECT /UPDATE/DELETE, etc propiamente dicho.
ScriptConectaMysqlDesdeBash.sh
  1. #!/bin/sh
  2. ####Definimos lor parametros de conexion a la BBDD mysql
  3. SQL_HOST=localhost
  4. SQL_USER="usuario"
  5. SQL_PASSWORD="password"
  6. SQL_DATABASE="basededatos"
  7. ####Montamos los parametros de conexión.
  8. SQL_ARGS="-h $SQL_HOST -u $SQL_USER -D $SQL_DATABASE -s -e"
  9. #### Montamos la sentencia SQL y la lanzamos
  10. mysql $SQL_ARGS "SELECT CURDATE();"
 

Habra que modificar las variables del script segun tengamos configurado la BBDD a la que queramos conectarnos.

Si lanzamos el script, este nos devolvera la siguiente salida:

elsotanillo:~/# ./ScriptConectaMysqlDesdeBash.sh
CURDATE()
2006-05-22

Comments
Add NewSearchRSS
Luis - Tu script...   | 189.187.30.xxx | 2008-05-02 16:19:54
Juan,
Gracias por el Script, me ha sido de gran ayuda, no sabes cuanto estuve batallando.
Saludos.
luis - Ejecutar varias sentencias con   | 189.187.30.xxx | 2008-05-02 17:02:29
El Script hace una conexion, ejecuta la sentencia y se desconeta.
Pero si quiero mantener la conexion abierta para lanzar unas 3 sentencias SQL?

Gracias
Juan   | 87.219.131.xxx | 2008-05-02 17:37:04
Simplemente escribelas una detras de otra ya que estas se ejecutan secuencialmente.


Si tienes alguna duda me avisas.

Salu2
Luis - ejecucion secuencial   | 189.187.30.xxx | 2008-05-05 15:17:37
cierto, funciono a la perfeccion.
La respuesta me la manda a la salida standar claro esta, pero ne me deja mandar la respuesta a archivo, utilizo los ">" pero nada, dentro del script claro.
Alguna idea?
Luis - archivo .sql como parametro   | 189.187.30.xxx | 2008-05-05 17:40:28
Algo estoy haciendo mal porque quiero darle al Script como parametro una sentencia SQL pero en su archivo original, es decir .sql pero no lo agarra.
Son varias sentencias que tengo por separado y necesito que cada una se corra diario y me deje un TXT como respuesta.
Juan - RE: archivo .sql como parametr     | 87.219.131.xxx | 2008-05-11 16:14:01
Hola,

No tengo muy claro que es lo que quieres hacer.
Luis - Te posteo u explico   | 189.187.36.xxx | 2008-05-23 11:37:46
Ahi va el Script
$ cat ScriptConectaMysqlDe
sdeBash.sh
#!/bin/sh
SQL_HOST=localhost
SQL_USER="luis"
SQL_PASSWORD="Bfg03M90"
SQL_DATABASE="gesban"

SQL_ARGS="-h $SQL_HOST -u $SQL_USER -D $SQL_DATABASE -s -e"

mysql $SQL_ARGS "SELECT TCuenta.id_remesa, TCuenta.no_cuenta, TCuenta.gestor_asig, TRemesa.f_vence FROM TCuenta INNER JOIN TRemesa ON (TCuenta.id_remesa = TRemesa.id_remesa) WHERE (TCuenta.no_cuenta = $1) AND (TRemesa.f_vence > CURDATE());"

Hasta aqui.
Esta consulta y otras 5 mas las necesito ejecutar diario y que cada consulta me de el resultado en un archivo TXT.
Lo que ya tengo pensado hacer:
- con el CRON puedo hacer que los Scripst corran a determinada hora
- Ahorita los Scripts me dan el resultado deseado en la lasilda Standar PERO necesito que me lo mande a un archivo TXT y aparte que el nombre del archivo sea asi "remesa20080523.txt". La parte que dice "remesa" que siempre salga asi, pero la parte de...
Luis - Te posteo u explico   | 189.187.36.xxx | 2008-05-23 11:38:39
Ahi va el Script
-$ cat ScriptConectaMysqlDe
sdeBash.sh
-#!/bin/sh
-SQL_HOST=localhost
-SQL_USER="luis"
-SQL_PASSWORD="Bfg03M90"
-SQL_DATABASE="gesban"
-
-SQL_ARGS="-h $SQL_HOST -u $SQL_USER -D -$SQL_DATABASE -s -e"
-
-mysql $SQL_ARGS "SELECT TCuenta.id_remesa, TCuenta.no_cuenta, TCuenta.gestor_asig, TRemesa.f_vence FROM TCuenta INNER JOIN TRemesa ON (TCuenta.id_remesa = TRemesa.id_remesa) WHERE (TCuenta.no_cuenta = $1) AND (TRemesa.f_vence > CURDATE());"
-
Hasta aqui.
Esta consulta y otras 5 mas las necesito ejecutar diario y que cada consulta me de el resultado en un archivo TXT.
Lo que ya tengo pensado hacer:
- con el CRON puedo hacer que los Scripst corran a determinada hora
- Ahorita los Scripts me dan el resultado deseado en la lasilda Standar PERO necesito que me lo mande a un archivo TXT y aparte que el nombre del archivo sea asi "remesa20080523.txt". La parte que dice "remesa" que siempre salga asi, pero...
Luis - Te posteo u explico   | 189.187.36.xxx | 2008-05-23 11:41:38
Ahi va el Script

SQL_HOST=localhost
SQL_USER="luis"
SQL_PASSWORD="Bfg03M90"
SQL_DATABASE="gesban"

SQL_ARGS="-h $SQL_HOST -u $SQL_USER -D -$SQL_DATABASE -s -e"

mysql $SQL_ARGS "SELECT TCuenta.id_remesa, TCuenta.no_cuenta, TCuenta.gestor_asig, TRemesa.f_vence FROM TCuenta INNER JOIN TRemesa ON (TCuenta.id_remesa = TRemesa.id_remesa) WHERE (TCuenta.no_cuenta = $1) AND (TRemesa.f_vence > CURDATE());"

Hasta aqui.

Esta consulta y otras 5 mas las necesito ejecutar diario y que cada consulta me de el resultado en un archivo TXT.
Lo que ya tengo pensado hacer:
- con el CRON puedo hacer que los Scripst corran a determinada hora
- Ahorita los Scripts me dan el resultado deseado en la salida Standar PERO necesito que me lo mande a un archivo TXT y aparte que el nombre del archivo sea por ejemplo asi "remesa20080523.txt".
La parte que dice "remesa" no debe cambiar, pero la parte de la fecha esa si necesito que cambie cad...
Luis - Te posteo u explico   | 189.187.36.xxx | 2008-05-23 11:41:58
Ahi va el Script

SQL_HOST=localhost
SQL_USER="luis"
SQL_PASSWORD="Bfg03M90"
SQL_DATABASE="gesban"

SQL_ARGS="-h $SQL_HOST -u $SQL_USER -D -$SQL_DATABASE -s -e"

mysql $SQL_ARGS "SELECT TCuenta.id_remesa, TCuenta.no_cuenta, TCuenta.gestor_asig, TRemesa.f_vence FROM TCuenta INNER JOIN TRemesa ON (TCuenta.id_remesa = TRemesa.id_remesa) WHERE (TCuenta.no_cuenta = $1) AND (TRemesa.f_vence > CURDATE());"

Hasta aqui.
Luis - Me marca error al postearte el   | 189.187.36.xxx | 2008-05-23 11:49:07
Juan,
No te pude postear el scritp pero es basicamente el que pusiste.
La idea es correr 5 Querys diferentes y que cada uno me genere un archivo TXT y que el nombre del archivo sea la fecha en que se genero, algo asi: "remesa20080516.txt"
Los Querys ya los tengo y jalan bien, el resultado lo veo el pantalla.
Me falta que me genere el resultado en TXT. Me puedes orientar al respecto?
Saludos
Juan - re: Me marca error al posteart     | 87.219.131.xxx | 2008-05-25 13:48:04
Luis wrote:
Juan,
No te pude postear el scritp pero es basicamente el que pusiste.
La idea es correr 5 Querys diferentes y que cada uno me genere un archivo TXT y que el nombre del archivo sea la fecha en que se genero, algo asi: "remesa20080516.txt"
Los Querys ya los tengo y jalan bien, el resultado lo veo el pantalla.
Me falta que me genere el resultado en TXT. Me puedes orientar al respecto?
Saludos


Hola,
Tan solo tendrias que redirigir la salida del comando mysql a un fichero.
Por ejemplo:
mysql $SQL_ARGS "SELECT CURDATE();" >Salida.txt.

Espero que te ayude.

Salu2
Luis - Corrio a la perfeccion   | 189.166.37.xxx | 2008-05-31 08:16:31
Nos acercamos a la perfeccion, dijo un profeta.
Y asi lo creo porque solo con el apoyo de los mas sabios y cultos nos quitamos un poco la ignorancia.
Solo me falta que la salida me la de separado por comas, dejame lo investigo.

Gracias. Que tengas buen dia.
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
 
Security Image
Please input the anti-spam code that you can read in the image.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

Last Updated ( martes, 01 enero 2008 )
 
< Prev   Next >
Frase celebre del día
Visitas
Imagenes
Linux Howtos
Visto en Barrapunto
Barrapunto
Sindícate
 
Top! Top!