Androide

Cómo administrar bases de datos mysql y usuarios desde la línea de comando

Base de datos en mysql usando linea de comando

Base de datos en mysql usando linea de comando

Tabla de contenido:

Anonim

MySQL es el sistema de gestión de bases de datos relacionales de código abierto más popular. El servidor MySQL nos permite crear numerosos usuarios y bases de datos y otorgar los privilegios adecuados para que los usuarios puedan acceder y administrar bases de datos.

Este tutorial explica cómo usar la línea de comandos para crear y administrar bases de datos y usuarios de MySQL o MariaDB.

Antes de que empieces

Antes de comenzar con este tutorial, asumimos que ya tiene instalado el servidor MySQL o MariaDB en su sistema. Todos los comandos se ejecutarán como usuario root.

Para abrir el indicador de MySQL, escriba el siguiente comando e ingrese la contraseña de usuario root de MySQL cuando se le solicite:

mysql -u root -p

Crear una nueva base de datos MySQL

Para crear una nueva base de datos MySQL, ejecute el siguiente comando, simplemente reemplace database_name con el nombre de la base de datos que desea crear:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

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

Para evitar errores si la base de datos con el mismo nombre que está intentando crear existe, puede usar el siguiente comando:

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

En el resultado anterior, Query OK significa que la consulta fue exitosa, y 1 warning nos dice que la base de datos ya existe y que no se creó ninguna nueva.

Listar todas las bases de datos MySQL

Puede enumerar todas las bases de datos que existen en nuestro servidor MySQL o MariaDB con el siguiente comando:

SHOW DATABASES;

La salida se verá más o menos así:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Las bases de datos information_schema , mysql , performance_schema y sys se crean en el momento de la instalación y almacenan información sobre todas las demás bases de datos, configuración del sistema, usuarios, permisos y otros datos importantes. Estas bases de datos son necesarias para la funcionalidad adecuada de la instalación de MySQL.

Eliminar una base de datos MySQL

Eliminar una base de datos MySQL es tan simple como ejecutar un solo comando. Esta es una acción no reversible y debe ejecutarse con precaución. Asegúrese de no eliminar una base de datos incorrecta, ya que una vez que elimine la base de datos, no podrá recuperarla.

Para eliminar un MySQL o MariaDB, la base de datos ejecuta el siguiente comando:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Para evitar este error, puede usar el siguiente comando:

DROP DATABASE IF EXISTS database_name;

Crear una nueva cuenta de usuario MySQL

Una cuenta de usuario en MySQL consta de un nombre de usuario y partes de nombre de host.

Para crear una nueva cuenta de usuario MySQL, ejecute el siguiente comando, simplemente reemplace 'database_user' con el nombre del usuario que desea crear:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

En el comando anterior, hemos configurado la parte del nombre de host en localhost que significa que este usuario podrá conectarse al servidor MySQL solo desde el host local (es decir, desde el sistema donde se ejecuta MySQL Server). Si desea otorgar acceso desde otro host (s) simplemente cambie el host localhost con la IP remota de la máquina o use '%' comodín '%' para la parte del host, lo que significa que la cuenta de usuario podrá conectarse desde cualquier host.

Igual que cuando trabaja con las bases de datos para evitar un error al intentar crear una cuenta de usuario que ya existe, puede usar:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Cambiar una contraseña de cuenta de usuario MySQL

La sintaxis para cambiar la contraseña de una cuenta de usuario MySQL o MariaDB depende de la versión del servidor que esté ejecutando en su sistema.

Puede encontrar la versión de su servidor emitiendo el siguiente comando:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

En ambos casos, la salida debería verse así:

Query OK, 0 rows affected (0.00 sec)

Listar todas las cuentas de usuario MySQL

Puede enumerar todas las cuentas de usuario de MySQL o MariaDB consultando la tabla mysql.users :

SELECT user, host FROM mysql.user;

El resultado debería ser similar al siguiente:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Eliminar cuenta de usuario MySQL

Para eliminar una cuenta de usuario, use el siguiente comando:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

Lo mismo que cuando trabaja con las bases de datos para evitar el error que puede usar:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Conceder permisos a una cuenta de usuario MySQL

Existen múltiples tipos de privilegios que se pueden otorgar a una cuenta de usuario. Puede encontrar una lista completa de privilegios compatibles con MySQL aquí. En esta guía veremos varios ejemplos:

Para otorgar todos los privilegios a una cuenta de usuario sobre una base de datos específica, use el siguiente comando:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Para otorgar todos los privilegios a una cuenta de usuario en todas las bases de datos, use el siguiente comando:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Para otorgar todos los privilegios a una cuenta de usuario sobre una tabla específica de una base de datos, use el siguiente comando:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Revocar permisos de una cuenta de usuario MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Mostrar privilegios de cuenta de usuario MySQL

Para encontrar los privilegios otorgados a un tipo de cuenta de usuario MySQL específico:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Conclusión

Este tutorial cubre solo los conceptos básicos, pero debería ser un buen comienzo para cualquiera que quiera aprender a administrar bases de datos MySQL y usuarios desde la línea de comandos. También puede consultar el tutorial sobre cómo restablecer una contraseña de root de MySQL en caso de que la haya olvidado.

¡Eso es todo! Si tiene alguna pregunta o comentario, no dude en dejar un comentario.

mysql mariadb