Cómo acceder a MySQL por línea de comandos, o terminal, para la consulta de los datos de la base de datos o su administración mediante la consola.
Es muy normal que utilicemos MySQL a través de páginas PHP y para administrar la base de datos utilicemos un programa como PhpMyAdmin, pero a veces no nos queda otro remedio que acceder a la base de datos a través de la línea de comandos, por ejemplo cuando estamos en un servidor remoto al que accedemos por terminal, o cuando no tenemos otra herramienta de interfaz gráfica instalada.
MySQL tiene un programa cliente, que se llama con el mismo nombre de la base de datos (mysql), que sirve para gestionar la base datos por línea de comandos. Ese programa está disponible en cualquier instalación de MySQL y lo tendremos que usar para conectarnos por línea de comandos.
Localizar el cliente MySQL en Windows
En un ordenador Windows ese programa se encuentra en un directorio como:
- C:\Archivos de programa\MySQL\MySQL Server 4.1\bin
- C:\xampp\mysql\
El directorio puede variar, por ejemplo, puede estar localizado en la raíz del disco C:, o en cualquier otro lugar donde podamos haber instalado MySQL. También depende de qué programa has usado para instalar MySQL y qué versión tienes. Una búsqueda en Google seguro que te ayudará a encontrar la carpeta correcta para tu caso.
Para acceder a la consola de MySQL en Windows tendremos que estar situados dentro de ese directorio, o bien colocar esa carpeta en la configuración de PATH.
Localizar el cliente MySQL en Linux
En Linux, por supuesto, también se puede acceder a MySQL por línea de comandos. Posiblemente desde cualquier directorio podamos acceder a la consola de MySQL, sin necesidad de situarse en el directorio donde esté instalado, ya que una vez instalado el motor de base de datos, nos proporciona el comando "mysql", estemos en la carpeta que estemos dentro de nuestro terminal.
Localizar el cliente MySQL en Mac
En Mac dependerá de cómo hemos instalado MySQL. El comando no está siempre disponible en nuestro terminal aunque tengamos instalado el motor de base de datos.
Aquí de nuevo una búsqueda en Google nos podrá decir cómo acceder al comando "mysql" si no está disponible en nuestro programa de terminal. Pero una configuración muy habitual es que hayamos instalado Mamp, en cuyo caso la respuesta la encuentras en la FAQ: Usar el comando mysql en Mac con instalación de Mamp Server
Comando para conectar con el servidor MySQL
Una vez que tenemos localizado el cliente de MySQL podemos conectar con el sistema gestor de MySQL por línea de comandos. Desde la consola invocamos a MySQL. Para ello, simplemente tenemos que escribir el comando "mysql" e indicarle unas opciones de conexión.
% mysql
Con esa sentencia se conecta uno con la base de datos con los parámetros por defecto. Es decir, al servidor local, con usuario y password igual a cadenas vacías.
Lo más normal es que tengamos que indicar algún otro dato para conectar con la base de datos, como el usuario, la clave o la dirección del servidor con el que queremos conectar. La sintaxis sería la siguiente:
mysql -h nombre_servidor -u nombre_usuario -p
Si deseamos conectarnos a la base de datos en local y con nombre de usuario root tendríamos que escribir:
mysql -h localhost -u root -p
Lo primero que nos preguntará será el password para el usuario root. Una vez introducida la clave, ya estaremos dentro de la línea de comandos de MySQL. Con ello el prompt cambiará a algo como esto:
mysql>
Podríamos haber indicado la contraseña directamente en la línea de comandos para iniciar la sesión con MySQL, pero esto se desaconseja por razones de seguridad. De todos modos, la sintaxis hubiera sido:
mysql -h localhost -u root -pmi_clave
Nos fijamos que entre -h y el nombre del host hay un espacio en blanco, igual que entre -u y el nombre de usuario. Sin embargo, entre -p y la clave no debemos poner ningún espacio. Sin embargo, a no ser que estés en local, el uso de la clave en el propio comando de conexión no es recomendable porque es inseguro.
Dentro de la consola de MySQL
Una vez dentro, tendremos a nuestra disposición todas las sentencias de MySQL para el trabajo con la base de datos y el lenguaje SQL.
Lo más normal es que primero te tengas que conectar con una base de datos en concreto, de entre todas las que puedes tener creadas en tu servidor MySQL. Eso se hace con el comando use, seguido del nombre de la base de datos que deseas conectar.
mysql> use mibasedatos;
Esto nos conectaría con la base de datos llamada "mibasedatos".
Si queremos ver una lista de las bases de datos alojadas en nuestro servidor podemos escribir el comando show databases. Así:
mysql>show databases;
Con esto nos mostraría una lista de las bases de datos de nuestro servidor. Algo como esto:
mysql> show databases
-> ;
5 rows in set (0.02 sec)
Si queremos crear una base datos, podremos hacerlo con el comando "create database" seguido del nombre de la nueva base de datos.
mysql> create database miprueba;
Eso nos creará una base de datos que se llama "miprueba". Como habíamos comentado, si queremos luego usar esa base de datos escribiríamos:
mysql> use miprueba;
Lógicamente, esta base de datos recién creada estará vacía, pero si estuviéramos usando una base de datos ya creada y queremos ver las tablas que tiene escribiríamos el comando "show tables".
mysql> show tables;
Si no hay tablas, nos dirá algo como "Empty set", pero si tenemos varias tablas dadas de alta en la base de datos que estamos usando, nos saldrá una lista de ellas:
2 rows in set (0.00 sec)
Ahora, si deseamos obtener información sobre una tabla, para saber qué campos tiene y de qué tipo, podremos utilizar el comando describe seguido del nombre de la tabla.
mysql> describe administrador;
4 rows in set (0.11 sec)
Otras Sentencias SQL
Desde la consola de MySQL podemos indicar por línea de comandos todo tipo de sentencias en lenguaje SQL, como selecciones, inserciones, actualizaciones, creación de tablas, etc. El mecanismo es el que se puede deducir. Simplemente colocamos la sentencia a ejecutar seguida del punto y coma. Veamos una serie de sentencias seguidas y el resultado de ejecutarlas:
mysql> create table prueba (id_prueba int);
Query OK, 0 rows affected (0.08 sec)
mysql> insert into prueba (id_prueba) values (1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into prueba (id_prueba) values (2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into prueba (id_prueba) values (3);
Query OK, 1 row affected (0.00 sec)
mysql> select * from prueba;
3 rows in set (0.00 sec)
En definitiva, podemos ejecutar todas las sentencias que se han aprendido en el manual del lenguaje SQL
Para salir de la línea de comandos de MySQL
Una vez hemos terminado de trabajar con MySQL, si queremos cerrar la conexión con el servidor, simplemente escribimos "quit" desde el prompt de MySQL:
mysql> quit
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...