Guía de comandos MySQL: de principiante a intermedio, CRUD, usuarios, copias de seguridad y solución de problemas

目次

1. Introducción

MySQL es una base de datos relacional de código abierto ampliamente utilizada entre los sistemas de gestión de bases de datos (DBMS). Es especialmente popular para aplicaciones web y sistemas empresariales. En este artículo explicaremos en detalle los comandos esenciales de MySQL y estructuraremos el contenido para que usuarios desde principiantes hasta intermedios puedan aprender de forma fluida.

1.1 ¿Qué es MySQL?

MySQL es un software utilizado para gestionar una base de datos relacional (RDB). Los datos se almacenan en tablas y se manipulan mediante SQL (Structured Query Language). MySQL tiene las siguientes características:

  • Código abierto y gratuito para cualquiera
  • Rendimiento rápido y liviano
  • Compatible con muchos lenguajes de programación (como PHP, Python y Java)
  • Adecuado para operar bases de datos a gran escala

1.2 Beneficios de aprender los comandos de MySQL

Para usar MySQL de manera eficiente, es importante comprender los comandos básicos. Los principales beneficios incluyen:

  • Gestión de datos más eficiente: dominar los comandos SQL permite recuperar, actualizar y eliminar datos rápidamente
  • Automatización del flujo de trabajo: usar scripts permite automatizar operaciones de la base de datos
  • Manejo de errores más fluido: cuando surgen problemas, puedes resolverlos con los comandos SQL apropiados

1.3 Qué aprenderás en este artículo

Este artículo explica los siguientes temas en detalle:

  • Operaciones básicas de MySQL (iniciar, conectar y operaciones de bases de datos)
  • Añadir, recuperar, actualizar y eliminar datos (operaciones CRUD)
  • Gestión de usuarios y configuración de privilegios
  • Comandos útiles y solución de problemas

A continuación, revisaremos cada sección en orden. Comencemos con las operaciones básicas de MySQL.

2. Operaciones básicas de MySQL (para principiantes)

2.1 Iniciar y conectar a MySQL

2.1.1 Iniciar MySQL

Como MySQL se ejecuta como un programa de servidor, primero debes iniciar el servidor. El método de inicio varía según el sistema operativo.

Iniciar en Linux / macOS

En Linux y macOS, puedes iniciar MySQL usando el comando systemctl.

sudo systemctl start mysql

Verificar si MySQL está en ejecución

sudo systemctl status mysql

Si ves “active (running)”, MySQL está funcionando normalmente.

Iniciar en Windows

En Windows, MySQL suele ejecutarse como un servicio, por lo que puedes usar el comando net start.

net start mysql

O, si utilizas XAMPP, abre el Panel de Control de XAMPP y haz clic en “Start” para “MySQL”.

2.1.2 Conectar a MySQL

Para conectarte a MySQL, usa el comando mysql. El comando básico de conexión es el siguiente:

mysql -u username -p
Conectar como usuario root

Por defecto, el usuario root está configurado como administrador. Puedes conectarte con el siguiente comando:

mysql -u root -p

Después de presionar Enter, se te pedirá que ingreses una contraseña. Si introduces la contraseña correcta, podrás iniciar sesión en MySQL.

Conectar a un host específico

Para conectarte a un servidor MySQL remoto, usa la opción -h.

mysql -h hostname -u username -p

Por ejemplo, para conectarte a un servidor MySQL en 192.168.1.100, escribe:

mysql -h 192.168.1.100 -u root -p
Conectar especificando un número de puerto

El puerto predeterminado de MySQL es 3306. Si se ha cambiado, puedes especificarlo con la opción -P.

mysql -h 192.168.1.100 -P 3307 -u root -p

2.2 Comandos básicos de MySQL

Una vez que estés conectado a MySQL, prueba ejecutar algunos comandos básicos.

2.2.1 Verificar la versión de MySQL

Para comprobar la versión de MySQL que estás usando actualmente, ejecuta el siguiente comando:

SELECT VERSION();

2.2.2 Verificar la base de datos actual

Para saber qué base de datos está seleccionada en ese momento, ejecuta:

SELECT DATABASE();

Si no hay ninguna base de datos seleccionada, se devuelve NULL.

2.2.3 Listar bases de datos disponibles

Para listar las bases de datos que existen en MySQL, usa:

SHOW DATABASES;

2.3 Errores comunes y soluciones

2.3.1 Error “Access denied”

Ejemplo de error:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Cómo solucionar:
  1. Verifique que la contraseña sea correcta
  2. Verifique y restablezca los privilegios de root
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
    

2.3.2 Error “No se puede conectar al servidor MySQL en ‘localhost’”

Example error:

ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
Cómo solucionar:
  1. Compruebe si MySQL está en ejecución ( systemctl status mysql )
  2. Reinicie MySQL
    sudo systemctl restart mysql
    

2.4 Resumen

En esta sección, explicamos cómo iniciar MySQL y conectarse a él.

3. Operaciones de base de datos

En MySQL, crea una base de datos para gestionar datos y luego organiza la información colocando tablas dentro de ella. En esta sección, explicaremos en detalle las operaciones básicas como crear, seleccionar, listar y eliminar bases de datos.

3.1 Creación de una base de datos

Para crear una base de datos en MySQL, use el comando CREATE DATABASE.

3.1.1 Crear una base de datos básica

Si ejecuta el siguiente comando SQL, podrá crear una nueva base de datos llamada my_database.

CREATE DATABASE my_database;
Mensaje cuando la creación tiene éxito
Query OK, 1 row affected (0.01 sec)

3.1.2 Cuando intenta crear una base de datos que ya existe

Si la base de datos ya existe, verá un error como el siguiente:

ERROR 1007 (HY000): Can't create database 'my_database'; database exists

Para evitar este error, es útil agregar la opción IF NOT EXISTS.

CREATE DATABASE IF NOT EXISTS my_database;

Al ejecutar este comando, la base de datos se crea solo si aún no existe.

3.2 Listado de bases de datos

Para verificar qué bases de datos existen en el servidor MySQL actual, use el comando SHOW DATABASES.

SHOW DATABASES;

Ejemplo de salida:

+--------------------+
| Database          |
+--------------------+
| information_schema |
| my_database       |
| mysql             |
| performance_schema |
| sys               |
+--------------------+

Nota: Las bases de datos del sistema como mysql e information_schema son necesarias para la administración de MySQL.

3.3 Selección de una base de datos

En MySQL, debe seleccionar la base de datos que desea usar. Para especificar una base de datos, ejecute el comando USE.

USE my_database;
Mensaje cuando tiene éxito
Database changed

Para confirmar qué base de datos está seleccionada actualmente, use el siguiente comando:

SELECT DATABASE();

Ejemplo de salida:

+------------+
| DATABASE() |
+------------+
| my_database |
+------------+

3.4 Eliminación de una base de datos

Para eliminar una base de datos que ya no necesita, use el comando DROP DATABASE.

DROP DATABASE my_database;

3.4.1 Notas importantes antes de la eliminación

  • ¡Cuidado: eliminar una base de datos borra todos los datos!
  • Para evitar errores accidentales, también puede agregar IF EXISTS.
    DROP DATABASE IF EXISTS my_database;
    

Este comando finaliza sin error incluso si my_database no existe.

3.5 Errores comunes y soluciones

3.5.1 Error “Acceso denegado para el usuario”

Ejemplo de error:

ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
Cómo solucionar
  • Conceda privilegios usando el comando GRANT
    GRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost';
    FLUSH PRIVILEGES;
    

3.5.2 Error “No se puede eliminar la base de datos”

Ejemplo de error:

ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
Cómo solucionar
  • Reinicie MySQL
    sudo systemctl restart mysql
    
  • Elimine primero todas las tablas en my_database, luego ejecute DROP DATABASE.

3.6 Resumen

En esta sección, aprendió cómo crear, seleccionar, listar y eliminar bases de datos.

4. Operaciones de tabla

Después de crear una base de datos, necesitas crear tablas dentro de ella para organizar los datos. Una tabla es como una cuadrícula para almacenar datos, compuesta por columnas y filas (registros).

En esta sección, explicaremos en detalle las operaciones básicas como crear, consultar, listar y eliminar tablas.

4.1 Crear una tabla

Para crear una tabla, usa el comando CREATE TABLE. Si ejecutas el siguiente SQL, se crea una tabla llamada users.

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.1.1 Explicación de cada elemento al crear una tabla

  • id INT AUTO_INCREMENT PRIMARY KEY
  • La columna id es un entero (INT), se incrementa automáticamente (AUTO_INCREMENT) y se define como clave primaria (PRIMARY KEY).
  • name VARCHAR(50) NOT NULL
  • La columna name es una cadena (VARCHAR) de hasta 50 caracteres y es obligatoria debido a NOT NULL.
  • email VARCHAR(100) UNIQUE NOT NULL
  • La columna email es una cadena de hasta 100 caracteres, y la restricción UNIQUE evita direcciones de correo duplicadas.
  • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  • La columna created_at establece automáticamente la fecha/hora actual como valor predeterminado.
Mensaje cuando tiene éxito
Query OK, 0 rows affected (0.02 sec)

4.2 Verificar la estructura de la tabla

Para comprobar la estructura de una tabla que creaste, usa DESC o SHOW COLUMNS.

DESC users;

O

SHOW COLUMNS FROM users;

Salida de ejemplo:

+------------+--------------+------+-----+-------------------+----------------+
| Field      | Type         | Null | Key | Default           | Extra          |
+------------+--------------+------+-----+-------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment |
| name       | varchar(50)  | NO   |     | NULL              |                |
| email      | varchar(100) | NO   | UNI | NULL              |                |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP |                |
+------------+--------------+------+-----+-------------------+----------------+

4.3 Listar tablas

Para listar las tablas que existen en la base de datos actual, ejecuta el comando SHOW TABLES.

SHOW TABLES;

Salida de ejemplo:

+------------------+
| Tables_in_mydb   |
+------------------+
| users            |
| products         |
| orders           |
+------------------+

4.4 Eliminar una tabla

Para eliminar una tabla que ya no necesitas, usa el comando DROP TABLE.

DROP TABLE users;

4.4.1 Notas importantes al eliminar una tabla

  • ¡Ten cuidado: eliminar una tabla elimina permanentemente los datos!
  • Para evitar errores al eliminar, agrega IF EXISTS.
    DROP TABLE IF EXISTS users;
    
Mensaje cuando tiene éxito
Query OK, 0 rows affected (0.01 sec)

4.5 Restablecer datos de la tabla (Eliminar todas las filas)

Si deseas conservar la estructura de la tabla pero eliminar solo los datos internos, usa TRUNCATE TABLE.

TRUNCATE TABLE users;
Diferencia con DROP TABLE
  • DROP TABLE elimina la propia tabla.
  • TRUNCATE TABLE elimina solo los datos y conserva la estructura de la tabla.

4.6 Errores comunes y soluciones

4.6.1 Error “La tabla ya existe”

Error de ejemplo:

ERROR 1050 (42S01): Table 'users' already exists
Cómo solucionarlo
  • Verifica las tablas existentes
    SHOW TABLES;
    
  • Crea la tabla con IF NOT EXISTS
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

4.6.2 Error “Tabla desconocida”

Error de ejemplo:

ERROR 1051 (42S02): Unknown table 'users'
Cómo solucionarlo
  • Comprueba si la tabla existe usando SHOW TABLES;
  • Si no existe, añade IF EXISTS
    DROP TABLE IF EXISTS users;
    

4.7 Resumen

En esta sección, cubrimos las operaciones básicas de tablas en MySQL: crear, comprobar y eliminar tablas.