elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Shell Script y MySql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Shell Script y MySql  (Leído 10,505 veces)
dark_fidodido

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Shell Script y MySql
« en: 28 Octubre 2009, 12:39 pm »

Bueno un paso mas despues de familiarizarme con Shell Script
Cuales son los comandos de MySql para utilizarlos en un Scrpt no he encontrado nada, solo para php y a mi me interesa tratar las tablas y los campos desde un script de shell...

Si me pasarais algun manual o algunos ejemplos me vendrian genial

Gracias!!!


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Shell Script y MySql
« Respuesta #1 en: 28 Octubre 2009, 17:49 pm »

Si manejas un poco la creacion de Scripts en bash, y conoces un poco el funcionamiento del lenguaje SQL (precisamente MySQL) no es tan complicado. Por ejemplo, te hice un ejemplillo personal;

Código
  1.  
  2. #!/bin/bash -x
  3.  
  4. MYSQL="mysql -u $1 -p$2"
  5. menu="\n********Menu*********\n1 - Ver Tablas\n2 - Ver datos Tablas\n3 - Insertar datos\n4 - Salir\n"
  6.  
  7. if [ -z $1 ] || [ -z $2 ]; then
  8.  echo Para ejecutarme coloca ./programa.sh  usuario  contrasena
  9. exit 0;
  10. fi
  11.  
  12. while [ "$opcion" != "4" ]; do
  13.  
  14. echo -e $menu
  15. read opcion
  16.  
  17. case $opcion in
  18. 1)
  19. $MYSQL << END
  20.      use primaria;
  21.      show tables;
  22. END
  23. sleep 02
  24. ;;
  25. 2)
  26.  
  27.  printf "Inserta nombre de la tabla :: "
  28.  read tablas
  29.  
  30. $MYSQL << END
  31.      use primaria;
  32.      select * from $tablas;
  33. END
  34. sleep 02
  35. ;;
  36. 3)
  37.  
  38.    printf "Inserta nombre de la tabla :: "
  39.    read tablas
  40.    echo Inserta valores a incluir en la tabla ::
  41.    read valores
  42.  
  43. $MYSQL << END
  44.      use primaria;
  45.      insert into $tablas values($valores);
  46. END
  47. sleep 02
  48. ;;
  49. 4)
  50. exit $?
  51. ;;
  52. esac
  53.  
  54. done
  55.  
  56. exit 0;
  57.  
  58.  
  59.  


En línea

dark_fidodido

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Shell Script y MySql
« Respuesta #2 en: 30 Octubre 2009, 16:30 pm »

mmmmm
algo asi ya intenté pero a mi solo me salia en el scrip el panes de control de mysql, no introducia las lineas de codigo, sólo cuando salía de mysql y claro me daba error por que la sintaxis no era correcta ^^
creo k para eso necesito algo de unos módulos DBI no?

gracias compañero

He probado el script, y me ha alegrado ver que funciona, lo malo es que me pide contraseña continuamente, lo he tenido que modificar un poco y claro yo necesito que funcione en background
Lo de la contraseña siempre me ha pasado me da un error cuando se la pongo en linea de comandos y solo puedo acceder a traves del comando # mysql -r -p
^^
« Última modificación: 30 Octubre 2009, 16:44 pm por dark_fidodido » En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Shell Script y MySql
« Respuesta #3 en: 30 Octubre 2009, 19:52 pm »

Citar
algo asi ya intenté pero a mi solo me salia en el scrip el panes de control de mysql, no introducia las lineas de codigo, sólo cuando salía de mysql y claro me daba error por que la sintaxis no era correcta ^^
creo k para eso necesito algo de unos módulos DBI no?

No. Revisa bien la sintaxis que aplicaste para dicho Shell Script para verificar porque te fallo, ya que el modulo DBI es aplicable exclusivamente para Perl conectarse a distintas base de datos relacionales  ;)  y hasta el momento estas comentando que quieres conectarte a traves de Bash no de Perl, para tu caso basta con procesar comandos de MySQL y realizar consultas como el ejemplo que te di... para tu caso (Bash+Mysql) no requieres ningun modulo o Api de MySQL.

Citar
He probado el script, y me ha alegrado ver que funciona, lo malo es que me pide contraseña continuamente, lo he tenido que modificar un poco y claro yo necesito que funcione en background

Precisamente los parametros $1 $2  hacen referencia en este caso a lo que insertes en linea de comando 'usuario' y 'contrasena' si quieres puedes ponerlo automatico, declarando una variable:

MYSQL="mysql -u  usuario  -pcontrasena'

Y ya esto te funcionara sin necesidad de ingresar usuario y contrasena.

$MYSQL << END
      use primaria;
      show tables;
END


En línea

dark_fidodido

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Shell Script y MySql
« Respuesta #4 en: 3 Noviembre 2009, 09:42 am »

ok, tienes razon a la hora de conecta con mysql de la forma:

MYSQL="mysql -u  usuario  -pcontrasena'

yo lo intentaba como:

MYSQL="mysql -u  usuario  -p=contraseña'

y claro no me iba...
gracias

Para sustituir un dato de una tabla....?
ya es pasando los comandos normales de mysql a una variable no?

por cierto una dudilla que tengo sobre este script

cuando llamas a la variable $MYSQL en los cases, por qeí le redireccionas un END y luego otro al final?
supongo que el 2º es para terminar la conexión a la database, pero el 1º ni idea Oo
« Última modificación: 3 Noviembre 2009, 11:10 am por dark_fidodido » En línea

dark_fidodido

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Shell Script y MySql
« Respuesta #5 en: 3 Noviembre 2009, 14:14 pm »

Jue y ademas esto no me funciona ahora dentro de una "function" en un case

$MYSQL << END
...
...
...
END

eso por k puede ser??
me da un error:

line 453: syntax error: unexpected end of file


la salida END no la soporta dentro de "function"?

Modifico:
no me hagais caso era problema de los tabuladores ^^

pero ahora no me acepta las variables dentro de las llamadas a las bases de datos de mysql
xDDD
quito un problema y me salen 100 enanos....
« Última modificación: 3 Noviembre 2009, 16:18 pm por dark_fidodido » En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Shell Script y MySql
« Respuesta #6 en: 6 Noviembre 2009, 19:07 pm »

Disculpa cielo por la tardanza  :rolleyes:  es que pues... no suelo visitar mucho este subforo por ende no me entero de las actualizaciones de los temas  ;)

Citar
pero ahora no me acepta las variables dentro de las llamadas a las bases de datos de mysql
xDDD

Literalmente no logro entender a que te refieres, podrias postear la parte del codigo donde te da el fallo y que es lo que intentas llamar de este  ;)

Todo es manejar de forma intermedia la sintaxis de Bash y conocer pelin sobre consultas SQL en MySQL, no es tan complicado como parece corazon  :-*
En línea

dark_fidodido

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Shell Script y MySql
« Respuesta #7 en: 9 Noviembre 2009, 09:51 am »

ya, si sobre consultas sé un rato y sobre bash o shell de linux tambien.
Ya resolvi el problema parece y es que las variables cuando las llamo por consultas tengo que meterlas entre comillas simples para que me las reconozca...


MYSQL='mysql -r -pContraseña'
$MYSQL << END
use tabla;
update $dato1 set tabla2='$dato2' where tabla3='$dato3'; (aquie es dnd no me reconocia las variables)
END (mi primer fallo fue pones este END con tabulador, el cual descubri que tiene que estar al principio de linea para que reconozca la salida el mysql)

gracias
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Shell Script y MySql
« Respuesta #8 en: 10 Noviembre 2009, 14:39 pm »

Me alegro por ti cielo  ;) 

Continua aprendiendo  ;-)
En línea

dark_fidodido

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Shell Script y MySql
« Respuesta #9 en: 11 Noviembre 2009, 09:38 am »

jajaja tiene gracia como hablas, son las mimas frase k me dice mi awela  :)

gracias a ti apañá xD
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines