Como uno de los sistemas de administración de bases de datos de código abierto, gratuitos y más buscados, MySQL le permite crear múltiples usuarios y bases de datos. También se otorgan ciertos permisos para garantizar que los usuarios puedan acceder y administrar las bases de datos a las que tienen derecho.
Este tutorial le mostrará cómo administrar su base de datos y el usuario de la base de datos desde la línea de comandos de MySQL.
Antes de comenzar este tutorial, asegúrese de tener la última versión de MySQL y MariaDB instalada en su sistema. MySQL se utiliza como usuario root para ejecutar los comandos apropiados.
Para iniciar sesión en la línea de comandos de MySQL, ejecute el siguiente comando e ingrese su nombre de usuario y contraseña de root.
$ mysql -u root -p
Paso 1: crea una base de datos MySQL
Primero, cree una nueva base de datos MySQL / MariaDB. Para hacer esto, ejecute el siguiente comando y reemplace la sección Nombre de la base de datos con el nombre de la base de datos que desea crear:
mysql> CREATE DATABASE database_name;
Esto le dará una salida como esta:
QueryOK, 1 rowaffected (0.00sec)
Si hay una base de datos, se muestra el siguiente mensaje de error:
ERROR 1007 (HY000): Can't createdatabase'database_name'; database exists
Ejecute el siguiente comando para asegurarse de que no vea este error incluso si usa el mismo nombre para su base de datos:
mysql> CREATE DATABASE IF NOT EXISTS database_name;
Debería ver el resultado a continuación:
QueryOK, 1 rowaffected, 1 warning (0.00sec)
En este caso, la sección Consulta OK muestra que la consulta se realizó correctamente. Entonces hay 1 advertencia Esto significa que su base de datos ya está en el sistema y no se ha creado ninguna base de datos.
Paso 2: enumere todas las bases de datos MySQL
Ejecute el siguiente comando para enumerar todas las bases de datos en su servidor MySQL / MariaDB:
mysql> SHOW DATABASES;
Esto le dará un resultado similar:
+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)
De la salida anterior, las siguientes bases de datos Esquema de información, MySQL, esquema de desempeño, y sys se crean durante la instalación. Las bases de datos almacenan información para el resto de bases de datos, usuarios, configuración del sistema, permisos y otros datos relevantes. Las bases de datos mencionadas son importantes para la instalación de MySQL.
Paso 3: eliminar una base de datos MySQL
Si desea eliminar una base de datos MySQL, ejecute el siguiente comando:
mysql> DROP DATABASE database_name;
Debería obtener el siguiente resultado:
QueryOK, 0 rowsaffected (0.00sec)
Cualquier intento de eliminar una base de datos que no existe en el sistema resultará en el siguiente mensaje de error:
ERROR 1008 (HY000): Can'tdrop database 'database_name'; database doesn't exist
Ejecute el siguiente comando para asegurarse de que no vea este error:
mysql> DROP DATABASE IF EXISTS database_name;
La salida debería verse así:
QueryOK, 0 rowsaffected, 1 warning (0.00sec)
Consulta OK indica que la consulta fue exitosa mientras 1 advertencia significa que la base de datos no existe.
Paso 4: crea una nueva cuenta de usuario en MySQL
Una cuenta de usuario de MySQL o MariaDB consta de dos partes. el nombre de usuario y el nombre de host.
Ejecute el siguiente comando para crear una nueva cuenta de usuario de MariaDB o MySQL. Reemplazar la pieza database_user puede ser reemplazado con su nombre de usuario preferido.
mysql> CREAR USUARIO ‘database_user’ @ ‘localhost’ IDENTIFICADO POR ‘user_password’;
En este comando, el nombre de host se establece en localhost Esto significa que desde el host local, el usuario encontrará una conexión más fácil con el servidor MySQL.
Reemplace el valor para permitir el acceso a otros hosts localhost en el comando anterior con la dirección IP de su computadora remota o simplemente use ‘%’ para el anfitrión. Esto le da a la cuenta de usuario de MySQL el derecho a conectarse fácilmente desde cualquier host.
Para evitar errores al crear una nueva cuenta de usuario que ya existe en la base de datos, ejecute el siguiente comando:
mysql> CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';
Eso debería darte un resultado como este:
QueryOK, 0 rowsaffected, 1 warning (0.00sec)
Paso 5: cambio de una contraseña para la cuenta de usuario de MySQL
Este tema se ha tratado ampliamente en nuestro artículo. ¿Cómo cambio mi contraseña raíz de MySQL?
El plan para cambiar una contraseña para la cuenta de usuario de MySQL / MariaDB depende de la versión del servidor que está ejecutando su máquina virtual.
Ejecute el siguiente comando para averiguar la versión de su servidor:
$ mysql --version
Si su sistema se ejecuta en MySQL 5.7.6 o MariaDB 10.1.20 y versiones más recientes para ambos, puede cambiar la contraseña de usuario con el siguiente comando:
mysql> ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';
Para MySQL 5.7.5 o MariaDB 10.1.20 y anteriores, use para ambos:
mysql> SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');
Con cualquiera de las opciones, obtendrá un resultado similar al siguiente:
QueryOK, 0 rowsaffected (0.00sec)
Paso 6: enumere todas las cuentas de usuario de MySQL
Para enumerar todas las cuentas de usuario de MySQL / MariaDB, simplemente ejecute la siguiente consulta para consultar mysql.users Mesa:
mysql> SELECT user, host FROM mysql.user;
Debería ver el resultado a continuación. En el resultado, puede ver una lista de los usuarios estándar de los servidores MySQL 5.7 que se ejecutan en un servidor Ubuntu. También verá otras dos cuentas de usuario que se agregaron anteriormente: ‘usuario_base_datos’ @ ‘%’ y ‘database_user’ @ ‘localhost’
+------------------+-----------+ | 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)
Paso 7: eliminar la cuenta de usuario de MySQL
Si desea eliminar una cuenta de usuario, ejecute el siguiente comando:
mysql> DROP USER 'database_user@'localhost';
Esto le da el siguiente resultado:
DROPUSER'database_user@'localhost';
Si intenta eliminar una cuenta de usuario que no existe en su base de datos, recibirá el siguiente error:
ERROR 1396 (HY000): Operation DROPUSERfailedfor'database_user'@'localhost'
Para evitar que ocurra este error, ejecute el siguiente comando:
mysql> DROP USER IF EXISTS 'database_user'@'localhost';
Debería ver el siguiente resultado:
QueryOK, 0 rowsaffected, 1 warning (0.00sec)
Paso 8: concesión de permisos a la cuenta de usuario de MySQL
Se pueden otorgar diferentes tipos de permisos a cada cuenta de usuario. Este enlace le da acceso a todos los permisos otorgados por MySQL. Veamos algunos ejemplos.
Ejecute el siguiente comando para otorgar a una cuenta de usuario todos los permisos para todas las bases de datos:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
Ejecute el siguiente comando para otorgar a una cuenta de usuario todos los permisos en una tabla específica de la base de datos:
mysql> GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
Utilice el siguiente comando para otorgar permisos específicos a una cuenta de usuario para un tipo específico de base de datos:
mysql> GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';
Paso 9: cancelación de permisos de una cuenta de usuario de MySQL
Para cancelar los permisos de una cuenta de usuario de MySQL, la sintaxis utilizada es casi la misma que se utiliza para otorgar permisos. Por ejemplo, para eliminar todos los permisos de una cuenta de usuario de MySQL específica para una base de datos específica, ejecute el siguiente comando:
mysql> REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
Paso 10: ver los permisos para la cuenta de usuario de MySQL
Ejecute el siguiente comando para determinar los permisos específicos otorgados a un tipo de cuenta de usuario de MySQL en particular:
mysql> SHOW GRANTS FOR 'database_user'@'localhost';
La salida será:
+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANTUSAGEON *.* TO'database_user'@'localhost' | | GRANT ALL PRIVILEGESON`database_name`.* TO'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2rowsinset (0.00 sec)
Eso es.
Conclusión
En este punto, debe conocer los conceptos básicos y cómo administrar las bases de datos y los usuarios de MySQL desde la línea de comandos.