Mini artículo para explicar los elementos básicos que son necesarios ejecutar para crear una BBDD MySQL desde comandos en linux.

Aunque en este otro artículo ya hablamos de una guía rápida de administración, vamos a centrarnos esta vez en creación de BBDD para entrar en más detalles.

La creación de BBDD es sencilla, pero puede variar según cómo vayamos a montar la infraestuctura según si la aplicación que accede a la BBDD está en el mismo servidor o en uno diferente.

Una vez dentro de la consola de nuestro servidor donde tenemos instalado el MySQL, ejecutamos el siguiente comando:

# mysql

y mostramos a continuación el listado de BBDD que actualmente tenemos creadas con este comando:

mysql> show databases;

Si no se muestra ninguna BBDD, usar este comando para conectarse:

# mysql -u root -proot -h localhost

Creamos la BBDD:

mysql> create database DB_NAME;

Creamos el Usuario:

mysql> create user USER identified by ‘password’;

Si queremos poder conectarnos a la BBDD desde otro host, debemos hacerlo de la siguiente manera. Con el @’%’ permitimos conexión desde otro host:

mysql> create user ‘USER’@’%’ identified by ‘password’;

Una vez creada, la seleccionamos para poder trabajar con ella:

mysql> use DB_NAME;

Ahora concedemos permisos al usuario para que pueda trabajar con la base de datos que hemos creado. Usar todas las comillas que aparecen y el .* para referirnos a todos los objetos de la BBDD:

mysql> grant all on DB_NAME.* to ‘USER’@’localhost’;

Si en vez de usar localhost indicamos el nombre o la ip de otro servidor, le estaremos concediendo acceso a la BBDD desde ese otro servidor.

Para comprobar que todo está correctamente, nos logamos con el usuario creado:

# mysql -u USER -pPASSWORD DBNAME

ERROR 1045 (28000): Access denied for user ‘USER’@’localhost’ (using password: YES)

Esto se debe a que el usuario cuando nos conectamos desde localhost no tiene contraseña, y se la estamos indicando. Debemos logarnos de esta manera:

# mysql -u USER DBNAME

Por ejemplo, para hacer un import de la BBDD no habrá que indicar la contraseña. Pero si nos queremos conectar a la base de datos desde otro servidor, sí deberemos indicarla.

Aún así, si queremos indicar la constraseña desde localhost o tenemos la BBDD y la aplicación en el mismo servidor, la aplicación accederá a la BBDD con usuario y contraseña y nos dará error. Para que el usuario se pueda conectar a localhost con contraseña hay que asignarle una contraseña con el siguiente comando:

set password for ‘USER’@’localhost’ = password(‘password’);

Una forma de comprobar lo anterior es lanzando el comando:

show grants for ‘USER’@’localhost’;

Antes de asignarle la contraseña habríamos visto lo siguiente:

+—————————————————————————————–+
| Grants for ‘red_sand’@’localhost’ |
+—————————————————————————————–+
| GRANT USAGE ON *.* TO ‘USER’@’localhost’ |
| GRANT ALL PRIVILEGES ON `DBNAME`.`DBNAME` TO ‘USER’@’localhost’ |
+—————————————————————————————–+

Y después de asignarle la contraseña veríamos esto otro:

+———————————————————————————————————————+
| Grants for ‘USER’@’localhost’ |
+———————————————————————————————————————+
| GRANT USAGE ON *.* TO ‘USER’@’localhost’ IDENTIFIED BY PASSWORD ‘*FC87F35C74FE0FC3C1371353E3825E4002E2A6E3’ |
| GRANT ALL PRIVILEGES ON `DBNAME`.* TO ‘USER’@’localhost’ |
+———————————————————————————————————————+

Con esto ya estaría todo. Es un tema delicado y que puede dar muchos dolores de cabeza si no usamos el % o indicamos el @’localhost’ donde aplica. Haciéndolo de esta manera debería funcionar correctamente, aunque seguro que todavía se me escapa alguna casuística por aprender ;).

Guardar

Advertisements

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

CERRAR

Pin It on Pinterest

Share This

Compártelo

¡Comparte este artículo con tus amigos!