> Manuales > Taller de MySQL

Explicamos cómo crear una base de datos MySQL nueva (o MariaDB), cómo crear un nuevo usuario y asignar permisos para acceder a la base de datos. Todo mediante el terminal de línea de comandos.

Crear base de datos MySQL y usuario por línea de comandos

En este artículo vamos a aprender a crear una base de datos en MySQL por línea de comandos. Los mismso pasos serían equivalentes si estás usando MariaDB.

Por qué usar la línea de comandos para crear la base de datos

Existen muchas interfaces gráficas para acceder a MySQL que nos permiten realizar de una manera sencilla las tareas de administración como las que vamos a tratar en este artículo, sin embargo, no siempre están disponibles.

En un ambiente de servidor remoto, al que accedemos generalmente por SSH muchas veces nos vemos obligados a usar la línea de comandos, por lo que debemos administrar MySQL conectándonos desde el shell. Esto no supone ningún problema, pero obviamente necesitas saber los comandos que debes usar para realizar las acciones, algo que suele ser un poco menos práctico que hacer las cosas a golpe de clic, pero muchas veces necesario.

En este pequeño taller de MySQL crearemos no solo una base de datos nueva sino además crearemos un usuario al que le asignaremos permisos para poder acceder a esa base de datos. El listado de comandos es cortesía de nuestros amigos de ApacheCTL, que lo han compartido con nosotros.

Acceso a MySQL por consola

Primer paso será acceder al servidor de MySQL por línea de comandos, algo que se realiza con el comando "mysql" indicando el host, usuario y password.

Para esta tarea necesitarás el usuario "root" con el que se configuró MySQL durante la instalación.

Nota: La instalación ya depende de tu servidor. La tendrás que hacer con la línea de comandos, con las instrucciones para tu propia distribución. Usarás los repositorios oficiales y los gestores adecuados, por ejemplo Debian o Ubuntu sería "apt-get" y CentOS "yum".

Para el acceso debemos primero crear la clave de root y luego usar el cliente mysql instalado cuando se instaló el servidor de MySQL. Lo consigues con los siguientes pasos:

1.- Asegurarse de poder acceder mediante root con tu propia clave segura

Importante: Si acabas de instalar MySQL o MariaDB necesitas ejecutar ya mismo el comando:

sudo mysql_secure_installation

Este comando es muy importante para mejorar la seguridad de la instalación de tu gestor de base de datos. El comando vale tanto para MySQL como para MariaDB.

Incluso, en el caso de MariaDB no puedes acceder por root si no has ejecutado este comando previamente.

Además, también es importante que uses "sudo" para poder acceder a MySQL o MariaDB con el usuario root, porque algunos sistemas lo requieren. Si no usas sudo probáblemente no te dejen entrar con ese usuario. Puedes encontrar más información en la FAQ: password de root predeterminado.

2.- Comando para acceso root MySQL / MariaDB

El comando será algo parecido a esto:

mysql -h localhost -u root -p

Ojo: Es muy probable que el acceso a MySQL/MariaDB lo tengas que realizar usando "sudo".

sudo mysql -h localhost -u root -p
En esta FAQ encuentras los motivos por los que es necesario usar sudo para acceder al sistema gestor de base de datos mediante el usuario root.

Puedes encontrar otras alternativas y comandos básicos de conexión en el artículo MySQL desde terminal Linux y también en MySQL por línea de comandos.

Crear la base de datos

Ya dentro del sistema gestor de MySQL crearás la base de datos con el siguiente comando "create database".

create database nombre_de_base_de_datos character set utf8;

Como ves, estamos indicando también que se use el juego de caracteres "utf8", lo que es una recomendación importante.

Crear el usuario para acceder a esta base de datos

Podrías usar el propio usuario de root para el acceso a nuestra nueva base de datos, pero por seguridad no es algo que generalmente vas a querer hacer. Es más conveniente crear un usuario nuevo al que asignar privilegios para el acceso únicamente a la base de datos que debe acceder.

Esto incluye la realización de varios comandos. En el primero de todos crearemos el usuario nuevo.

Es posible que al hacer el "mysql_secure_installation" hayamos configurado una política de fuerza de la clave, para que no se puedan crear claves déviles e inseguras. Si es el caso, para evitar el error "Your password does not satisfy the current policy requirements" necesitamos crear una clave para este usuario, ambas acciones en el mismo comando.

create user nuevo_usuario@'localhost' identified by '1234qwer$A';

Si no hemos corrido el comando "mysql_secure_installation" o bien no hemos fijado una política de claves seguras, como alternativa podríamos crear los usuarios con este otro comando:

create user nuevo_usuario@'localhost';

Si no se creó la clave inicialmente, o se desea cambiar, vamos a asignar una clave para el acceso con este usuario de esta manera.

set password for 'nuevo_usuario'@'localhost' = PASSWORD('UnAcl4v3muyDiFiCiL');

Ahora debemos asignar los privilegios para el acceso a la base de datos que nos interesa que acceda este usuario nuevo.

grant all on nombre_de_base_de_datos.* to 'nuevo_usuario'@'localhost' ;

Una última acción, para asegurarnos que se entregan ya mismo esos privilegios, se reinicia la caché y todo lo que haga falta para que todo esté funcionando como se espera.

flush privileges;

Con eso es todo! tenemos nuestra base de datos creada y un usuario con privilegios suficientes, listo para ser utilizado desde nuestra programación backend en cualquier lenguaje.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual