jueves, 11 de diciembre de 2008

mySQL - usuarios y contraseñas

Cuando instalamos mySQL en un servidor por defecto este no tiene contraseña para el usuario root lo cual es muy peligroso asi que lo primero es poner una contraseña

#mysql> grant all privileges on *.* to root@'localhost' identified by 'contraseña' with grant option;

Ahora para entrar a la consola de mysql lo haremos con:
user@server:~$ mysql -u root -p


En muchas oportunidades para tener mejor administración de nuestro gestor de Base de datos mySQL necesitaremos crear un usuario de uso exclusivo para una base de datos en particular, esto lo conseguimos con la siguiente instrucción:

GRANT ALL ON baseDatos.* TO usuario@servidor IDENTIFIED BY 'contraseña';

baseDatos: Nombre de la Base de datos.
usuario: Nombre del usuario propietario de la base de datos.
servidor: Dirección del servidor de Base de Datos por defecto localhost.
contraseña: Contraseña usada por el usuario para control de BD.


ACCESO REMOTO:
Si necesitamos que nuestras bases de datos tengan acceso remoto haremos lo siguiente:

  • Editar el archivo my.cnf ubicado en /etc/mysql
  • Buscamos la linea que dice "bind-address = 127.0.0.1" y la reemplazamos por "bind-address = 0.0.0.0"
  • Enseguida entramos como root a mysql para dar privilegios al usuario que se conectara remotamente con GRANT ALL ON baseDatos.* TO usuario@'%' IDENTIFIED BY 'contraseña';
  • Finalmente reiniciamos el servidor con: '/etc/init.d/mysql restart'
MODIFICACIONES PARA LA VERSIÓN 8.

CREATE USER 'usuario'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'usuario'@'%';
ALTER USER 'usuario'@'%' IDENTIFIED WITH mysql_native_password BY '123456';