Crear un usuario y asignar permisos en MySQL
Normalmente para configurar el acceso de una aplicación web a la base de datos crearemos una cuenta de servicio para esa aplicación, y le daremos permisos según necesitemos, pero solamente a esa base de datos.
Esta es una de esas cosas que uno hace mil veces pero nunca se acuerda de la sintaxis correcta. Aqui lo teneis:
CREATE USER 'nombre_de_usuario'@'localhost' IDENTIFIED BY 'vuestra_password'; GRANT ALL PRIVILEGES ON nombre_de_base_de_datos.* TO 'nombre_de_usuario'@'localhost'; FLUSH PRIVILEGES;
Si queremos asignarle todos los permisos para todas las bases de datos, el GRANT sería así:
GRANT ALL PRIVILEGES ON *.* TO 'nombre_de_usuario'@'localhost';
Normalmente, antes habremos creado la base de datos a mano, o importando los datos de algún archivo. Crear la base de datos en MySQL puede ser tan sencillo como:
CREATE DATABASE nombre_de_base_de_datos;
Suele ser buena idea probar que ha funcionado correctamente. La mejor forma es probar el acceso usando el terminal:
mysql --user=nombre_de_usuario --password=vuestra_password nombre_de_base_de_datos
Si todo está correcto, nos abrirá una sesión de MySQL en el terminal. Si no conecta, es que hemos hecho mal alguno de los pasos anteriores.