the - ubuntu mysql root access denied
Conectar al servidor mysql sin sudo (6)
El mensaje de error:
"ERROR 1698 (28000): Acceso denegado para el usuario ''root'' @ ''localhost''"
significa que el Servidor no permite la conexión para este usuario y no que mysql no pueda acceder al socket.
Intenta esto para resolver el problema:
Inicia sesión en tu DB
sudo mysql -u root -p
Luego haz estas modificaciones:
MariaDB []>use mysql;
MariaDB [mysql]>update user set plugin='' '' where User=''root'';
MariaDB [mysql]>flush privileges;
MariaDB [mysql]>exit
intente iniciar sesión de nuevo sin sudo
El comando:
mysql -u root -p
da el error:
ERROR 1698 (28000): Access denied for user ''root''@''localhost''
Pero ejecutando sudo privilegios, funciona:
sudo mysql -u root -p
¿Es posible deshacerse del requisito sudo porque me impide abrir la base de datos en intellij? Intenté lo siguiente como en la respuesta a esta pregunta Conectar a un servidor MySQL local sin sudo :
sudo chmod -R 755 /var/lib/mysql/
Lo cual no ayudó. La pregunta anterior tiene un error diferente arrojado.
En el comentario de la pregunta que respondes a la que te refieres, se lee
Ok, solo intenta analizar todos los directorios en la ruta del archivo de socket, necesitan tener o + rx y el archivo de calcetín también (no es una buena idea hacerlo modificable por otros).
También puede intentar eliminar mysql.sock y luego reiniciar mysqld, el demonio debe crear el archivo con los privilegios adecuados.
Esto pareció funcionar para esta pregunta (la que dijiste que miraste), por lo que también puede funcionar para ti.
Necesitas cambiar el algoritmo. Siguiendo el trabajo para mi,
mysql > ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY '''';
mysql > FLUSH PRIVILEGES;
Primero inicie sesión en su mysql con sudo.
luego use este código para cambiar el valor de la columna "plugin" de "unix_socket" a "mysql_native_password" para el usuario root.
UPDATE mysql.user SET plugin = ''mysql_native_password'' WHERE user = ''root'' AND plugin = ''unix_socket'';
FLUSH PRIVILEGES;
Finalmente reinicie el servicio mysql. Eso es.
Si quieres más información, consulta this enlace.
Puede utilizar la siguiente consulta:
GRANT ALL PRIVILEGES ON *.* TO ''username''@''localhost'' IDENTIFIED BY ''password'';
Esta consulta es suficiente.
Solo el usuario root necesita el requisito de sudo para iniciar sesión en mysql. Resolví esto creando un nuevo usuario y otorgando acceso a las bases de datos requeridas:
CREATE USER ''newuser''@''localhost'' IDENTIFIED BY ''password'';
GRANT ALL PRIVILEGES ON database_name.* TO ''newuser''@''localhost'';
ahora newuser
puede iniciar sesión sin sudo requisito:
mysql -u newuser -p