Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre la forma mas basica de conectarse como es el interprete desde la terminal.

Anuncios

Cuando hablamos del interprete nos referimos al programa cliente mas basico que nos permitira conectarnos a la base de datos y poder trabajar con todos los elementos de una base de datos, veamos su sintaxis mas basica:

$ mariadb -u usuario -p <base>
Anuncios
Anuncios

Siempre primero pasaremos el cliente, luego el modificador encargado de indicar que el proximo parametro es el usuario que se va a conectar, este dato es obligatorio, luego tenemos el modificador de -p para que el interprete nos solicite la contraseña del usuario, de manera predeterminada la base de datos pide la contraseña del usuario pero se puede configurar para que no lo haga, para finalmente tener un dato opcional como es la base a conectarse, en caso de informarse una base y el usuario tiene los permisos procede a conectarse en caso contrario puede no conectarse o ingresar al servidor pero no a la base, obviamente estos son los parametros mas utilizados y basicos pero tambien existen otros, veamos algunos:

  • -? / –help, nos muestra la ayuda en pantalla con todos los datos necesarios
  • -D / –database, nos permite conectarnos a una base de datos, ideal para trabajar con archivos shell scripting o de lotes (.bat)
  • -e / –execute, ejecuta el comando informado y sale del interprete
  • -f / –force, continua a pesar de ocurrir un error con el SQL
  • -b / –no-beep, anula el sonido de beep ante algun error
  • -h / –host, especifica la direccion del host a conectarse
  • -H / –html, devuelve las salidas de los query en HTML
  • -X / –xml, idem al anterior pero en XML
  • -u / –user, especifica al usuario (al lado la otra opcion disponible)
  • -p / –pass, idem al anterior pero para la clave del usuario
  • -S / –socket, nos permite especificar el socket de conexion
Anuncios
Anuncios

Como dije estos son solo algunos de los que considero mas importantes o utilizados, ambos modificadores hacen lo mismo pero la diferencia radica que en el segundo podemos especificar un valor y en el primero no todos lo permiten, por ejemplo -p, y los segundos son mas utilizados en archivos de tipo shell scripting (Unix) o .bat (Windows), pero si van a utilizar una terminal como es nuestro caso les recomiendo los primeros y el primer modificador es el encargado de devolver todos los disponibles y para que se usan, ante cualquier duda les recomiendo usarlo.

Anuncios

Antes de ahondar en el interprete les dejo un pequeño truco que a mi me funciona con Debian, en caso de necesitar ingresar al interprete como root pero no saben la contraseña pero poseen permisos totales en el sudo, prueben de hacer esto:

$ sudo mariadb -u root -p
Anuncios

Pueden poner la contraseña del root o dejarla en blanco y este va a ingresar y por lo tanto podran resetear la contraseña del usuario de conexion y/o conceder permisos y etc, obviamente esto lo comento a nivel desarrollo, en nivel de produccion muy probablemente no funcione pero esto les ayudara la primera vez especialmente para crear el usuario de conexion, retomemos.

Anuncios

Para poder ingresar a nuestro servidor como dije debemos usar la siguiente linea:

tinchicus@dbn001vrt:~$ mariadb -u tinchicus -p
Enter password:
Anuncios

Donde tinchicus es mi usuario de conexion y ustedes deben usar el propio, observen como por medio del -p nos pide una contraseña, ingresen la contraseña del usuario y debera quedar de la siguiente forma:

tinchicus@dbn001vrt:~$ mariadb -u tinchicus -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 45
Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
Anuncios

Como pueden ver pude ingresar correctamente, veamos un ejemplo donde no pasamos el parametro -p:

tinchicus@dbn001vrt:~$ mariadb -u tinchicus
ERROR 1045 (28000): Access denied for user 'tinchicus'@'localhost' (using password: NO)
tinchicus@dbn001vrt:~$
Anuncios

Como pueden observar no nos deja ingresar sino informamos la contraseña del usuario, esta es la configuracion predeterminada pero se puede modificar, por ultimo vamos a ver un par de ventajas de trabajar con el interprete.

Anuncios

La primera es poder ejecutar algunos comandos por fuera del interprete sin necesidad de ingresar al mismo, por ejemplo:

$ mariadb -u tinchicus -p mysql -e "show tables"
Anuncios

En este caso seguimos manteniendo la estructura de nuestra conexion basica pero le especificamos la base mysql, la cual existe de manera predeterminada, despues usamos el modificador -e y entre comillas pasamos el comando a ejecutar, en este caso uno para mostrar las tablas del cual ahondaremos mas adelante, si lo ejecutamos debe pedirnos la clave y dar una salida semejante a esta:

tinchicus@dbn001vrt:~$ mariadb -u tinchicus -p mysql -e "show tables"
Enter password: 
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| column_stats              |
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| gtid_slave_pos            |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| index_stats               |
| innodb_index_stats        |
| innodb_table_stats        |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| roles_mapping             |
| servers                   |
| slow_log                  |
| table_stats               |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| transaction_registry      |
| user                      |
+---------------------------+
tinchicus@dbn001vrt:~$
Anuncios

Como pueden ver nos ejecuto el comando, mostro la salida del mismo y salio del interprete para volver al prompt de la terminal, esto es muy util si necesitamos realizar un query en particular y no necesitamos nada mas, otra opcion interesante es recuperar backups, estos en general son archivos con la extension .sql que contienen todos los queries necesarios para crear la base, tabla e ingresar toda la informacion del archivo en el destino, por lo general se utiliza de la siguiente forma:

$ mariadb -u usuario -p base < archivo.sql
Anuncios

En este caso especificamos la base porque el archivo solo posee las tablas y la informacion de las mismas pero no crea la base, por esta razon debemos informar el destino, y otra opcion interesante es utilizarlo para guardar la salida de un query en un archivo:

$ mariadb -u usuario -p base -e "comando" > archivo
Anuncios

Como pueden ver no solo cambia el operador que esta vez se encarga de enviar la salida a un archivo, sino que a su vez agregamos el comando que generara la salida del archivo, les paso un ejemplo:

$ mariadb -u tinchicus -p curso -e "select usuario from alumnos" > salida.txt
Anuncios

En este caso le decimos que nos devuelva el usuario de la tabla alumnos en la base curso y la salida la guarde en un archivo llamado salida.txt, si lo ejecutamos nos pedira la clave y despues devolvera el prompt sin mostrar la salida porque la almaceno en el archivo, veamos todo:

tinchicus@dbn001vrt:~$ mariadb -u tinchicus -p curso -e "select usuario from alumnos" > salida.txt
Enter password: 
tinchicus@dbn001vrt:~$ cat salida.txt 
usuario
tinchicus
etortore
daleman
polizzia
tinchicus@dbn001vrt:~$
Anuncios
Nota: 
Esta base fue una creada para el curso de PHP.
Anuncios

Y estas son algunas de las acciones basicas que podemos hacer con nuestro interprete, en algun post voy a tratar de explicarlo bien a fondo pero debo repasar y probar todas las opciones disponibles pero creo que con esto es mas que suficiente para poder trabajar de una manera mas eficiente con nuestro interprete.

Anuncios

En resumen, hoy hemos visto al interprete, como conectarnos, algunos modificadores disponibles, tambien hemos visto como poder realizar acciones del mismo sin necesidad de entrar y otras de gran utilidad, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50