> Faqs > ¿Por qué no puedo acceder a MariaDB sin usar sudo en Ubuntu?

¿Por qué no puedo acceder a MariaDB sin usar sudo en Ubuntu?

Tengo una instalación de MariaDB recién realizada en Linux, con Ubuntu.

Intento hacer acceso en el sistema gestor de base de datos, con el cliente incluido (comando MySQL) desde el terminal.

Sólo puedo conseguir acceso cuando uso "sudo".

mysql -u root -p

Me sale el siguiente error:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Sin embargo, si intento hacer el mismo acceso para loguearme con el cliente usando el comando con sudo, entonces sí que me deja.

sudo mysql -u root -p

¿Por qué no puedo acceder a MariaDB sin usar Sudo?

Respuestas

Se trata de una medida de protección que MariaDB realiza frente al uso del usuario root para el acceso a la base de datos.

En realidad no es muy aconsejado usar el usiario root, al menos en una aplicación en producción, ya que permite hacer todas las operaciones sobre todas las bases de datos. Así se aseguran que no todos los usuarios del sistema linux sean capaces de usar sudo y pro tanto ningún programador la use para autenticarse en el acceso a su base de datos de aplicación.

Victor
77 1 6 4

Aparte de lo que dice Víctor, que es una medida de seguridad de MariaDB frente al uso del usuario root, también decir que solamente el usuario root requiere el uso de "sudo" para el acceso.

La solución para evitar el uso de "sudo" sería simplemente crear un usuario diferente y darle permisos de acceso a la base de datos que se requera.

Esto lo puedes hacer con estos comandos en el cliente de MariaDB (mysql):

Creamos un usuario nuevo:

create user myuser@'localhost';

Le asignamos un password:

set password for 'myuser'@'localhost' = PASSWORD('passw0rd');

Asignamos permisos a la base de datos que se requiera:

grant all on db_name.* to 'myuser'@'localhost' ;

Por último tienes que hacer que los permisos se apliquen con:

flush privileges;

Tienes más información sobre este tema en el artículo de Crear base de datos MySQL y usuario por línea de comandos

Miguel Angel
1876 87 119 5