Mysql comandos shell: Ejecutar comandos en el cliente mysql

Mysql comandos shell

La consola de cliente MySQL, permite realizar muchos trabajos de manera mucho más eficaz que usando un interface del tipo phpMyAdmin. Ademas, también hay programas de escritorio como Sequel Pro para mac Os X que también nos permiten ejecutar comandos en la consola del cliente MySQL. En ella podemos usar scripts de sql. ¿Pero sabias que es posible también ejecutar comando del shell? En este artículo te lo contamos.

Ejecutar comandos bash en la consola de cliente MySQL

Comenzamos con el uso del cliente MySQL para la consola

En las distribuciones de Linux o en BSD, mysql es un comando que ya esta preparado para su uso en una consola shell, y como norma general, esta incluido dentro del path de entorno. Así que sólo será necesario acceder a él.

Forma generalizada de acceso a mysql pero insegura

mysql -u [username] -p

Como ya comentábamos en nuestro artículo Modificar artículos de WordPress vía comandos MySQL esta no es la forma más segura de acceder a la consola mysql en el shell. Si quieres más información, te recomendamos leer End-User Guidelines for Password Security

En nuestro caso simplemente usamos el comando mysql

[root@kvm401 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 122776
Server version: 10.1.23-MariaDB MariaDB Server

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

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

MariaDB [(none)]>

Esto es posible porque usamos el fichero .my.cnf en el home de nuestro usuario, ya que usamos MariaDB y este no dispone de la utilidad mysql_config_editor.

[root@kvm401 ~]# cat .my.cnf
[client]
user=root
password="UnACoNtRaSeÑa#@CoMpLiCaDa12"

Ejecutar comandos shell dentro del cliente MySQL

MariaDB [(none)]> \! ls -l
total 120
-rw-------. 1 root root  1413 May 20  2016 anaconda-ks.cfg
drwxr-xr-x. 4 root root    41 May 20  2016 cpanel3-skel
-rw-r--r--. 1 root root   446 Mar 18 10:28 ifcfg-eth0.bak-new
-rw-r--r--. 1 root root   420 Mar 10 11:22 ifcfg-eth0-online
-rw-r--r--. 1 root root   412 Mar 10 11:35 ifcfg-eth0-ovh-vrack
-rw-r--r--. 1 root root    10 May 20  2016 installer.lock
drwxr-xr-x. 2 root root     6 May 20  2016 perl5
-rw-r--r--. 1 root root 38963 May 20  2016 php.ini.new
-rw-r--r--. 1 root root 38963 May 20  2016 php.ini.orig
-rw-r--r--. 1 root root  1333 Aug 16  2016 RPM-GPG-KEY-ZABBIX
drwxr-xr-x. 3 root root    30 May 20  2016 soft
drwxr-xr-x. 7 root root  4096 Mar 20 09:55 testssl.sh
drwxr-xr-x. 3 root root  4096 May  9 20:36 tmp
-rw-r--r--. 1 root root  4972 Mar 20 07:43 zabbix.sh

Puedes ejecutar también vi o nano por si quieres editar algún fichero sql

mysql> \! nano

Puedes cambiar al shell, como proceso hijo para después volver a donde estabas

MariaDB [(none)]> \! bash
[root@kvm401 ~]# exit
exit
MariaDB [(none)]>

Notas finales

Para nosotros es importante no ya como administradores de sistemas, sino como clientes (por ejemplo cuando nos piden migraciones desde otros hosting, de clientes que no tienen acceso root) el uso de la linea de comandos del cliente mysql  ya que nos permite con un simple script realizar migraciones de forma infinitamente más sencilla y eficaz que con la instalación de pesados y absurdos plugins de Joomla, WordPress, etc. Además esta forma de trabajar, nos permite hacer migraciones con el mínimo downtime (tiempo de caída o perdida de servicio real). Por eso, siempre decimos, que un hosting sin SSH es como un jardín sin flores. Contrata siempre que puedas Hosting con SSH


Artículos externos:


Descargada de Freepik y diseñada por Kjpargeter

Comparte este artículo

Artículo Antiguo
Este artículo tiene más de 2 años. Es muy probable que su contenido este anticuado, aunque pueda ser de utilidad, es conveniente que revises otras informaciones al respecto. Si lo encuentras útil o crees que puede ser actualizado, deja tu comentario con la actualización para poder editarlo y que pueda ser útil a los demás.

Comparte este articulo en

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax