yes usuario usando solucion password para for documentación dicho denegado clave acceso mysql sql database database-connection

usando - Error de MySQL: ''Acceso denegado para el usuario'' root ''@'' localhost ''



access denied for user ''root''@''localhost''(using password yes) solucion (9)

Para usuarios de Ubuntu / Debian

Ejecute lo siguiente para conectarse como root (sin ninguna contraseña)

sudo /usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf

Si no desea agregar --defaults-file cada vez que quiera conectarse como root , puede copiar /etc/mysql/debian.cnf en su directorio de inicio:

sudo cp /etc/mysql/debian.cnf ~/.my.cnf

y entonces:

sudo mysql

$ ./mysqladmin -u root -p '' redactado ''
Introducir la contraseña:

mysqladmin: error de conexión al servidor en ''localhost'' falló:
''Acceso denegado para el usuario'' root ''@'' localhost ''(utilizando contraseña: SÍ)''

¿Cómo puedo arreglar esto?


  1. Abra y edite /etc/my.cnf o /etc/mysql/my.cnf , según su distribución.
  2. Añadir skip-grant-tables en [mysqld]
  3. Reiniciar Mysql
  4. Debería poder iniciar sesión en mysql ahora usando el siguiente comando mysql -u root -p
  5. Ejecute mysql> flush privileges;
  6. Establecer nueva contraseña ALTER USER ''root''@''localhost'' IDENTIFIED BY ''NewPassword'';
  7. Vuelva a /etc/my.cnf y elimine / comente skip-grant-tables
  8. Reiniciar Mysql
  9. Ahora podrá iniciar sesión con la nueva contraseña mysql -u root -p


En mi caso bajo Debian 10, el error

sudo mysql -u root -p mysql

fue resuelto por (BUENA MANERA)

mysql -u root -p mysql

MAL CAMINO:

mysql -u root -p mysql


En su banco de trabajo MySQL, puede ir a la barra lateral izquierda, en Administración seleccione "Usuarios y privilegios", haga clic en raíz en Cuentas de usuario, en la sección derecha haga clic en la pestaña "Límites de cuenta" para aumentar las consultas máximas, actualizaciones, etc. luego haga clic en la pestaña "Roles administrativos" y marque las casillas para dar acceso a la cuenta. ¡Espero que ayude!


Hice esto para establecer mi contraseña de root en la configuración inicial de MySQL en OSx. Abre una terminal.

sudo sh -c ''echo /usr/local/mysql/bin > /etc/paths.d/mysql''

Cierre la terminal y abra una nueva terminal. Y los siguientes se trabajan en Linux, para establecer la contraseña de root.

sudo /usr/local/mysql/support-files/mysql.server stop sudo mysqld_safe --skip-grant-tables

(sudo mysqld_safe --skip-grant-tables: Esto no funcionó para mí la primera vez. Pero el segundo intento fue el éxito).

Luego inicie sesión en MySQL

mysql -u root FLUSH PRIVILEGES;

Ahora cambie la contraseña:

ALTER USER ''root''@''localhost'' IDENTIFIED BY ''newpassword'';

Reiniciar MySQL:

sudo /usr/local/mysql/support-files/mysql.server stop sudo /usr/local/mysql/support-files/mysql.server start


Intenté muchos pasos para corregir este problema. Hay tantas fuentes de posibles soluciones a este problema que es difícil filtrar el sentido del sinsentido. Finalmente encontré una buena solución here :

Paso 1: identificar la versión de la base de datos

$ mysql --version

Verás algunos resultados como este con MySQL:

$ mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper

O salida como esta para MariaDB:

mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

Tome nota de qué base de datos y qué versión está ejecutando, ya que las usará más adelante. A continuación, debe detener la base de datos para poder acceder a ella manualmente.

Paso 2: detener el servidor de bases de datos

Para cambiar la contraseña de root, debe cerrar el servidor de la base de datos de antemano.

Puede hacer eso para MySQL con:

$ sudo systemctl stop mysql

Y para MariaDB con:

$ sudo systemctl stop mariadb

Paso 3: reiniciar el servidor de base de datos sin verificación de permisos

Si ejecuta MySQL y MariaDB sin cargar información sobre los privilegios del usuario, le permitirá acceder a la línea de comando de la base de datos con privilegios de root sin proporcionar una contraseña. Esto le permitirá obtener acceso a la base de datos sin saberlo.

Para hacer esto, debe evitar que la base de datos cargue las tablas de concesión, que almacenan información de privilegios de usuario. Debido a que esto es un riesgo de seguridad, también debe omitir las redes para evitar que otros clientes se conecten.

Inicie la base de datos sin cargar las tablas de concesión o habilitar la conexión en red:

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

El ampersand al final de este comando hará que este proceso se ejecute en segundo plano para que pueda seguir utilizando su terminal.

Ahora puede conectarse a la base de datos como usuario root, que no debe solicitar una contraseña.

$ mysql -u root

Inmediatamente verá un indicador de shell de la base de datos.

Mensaje de MySQL

Type ''help;'' or ''/h'' for help. Type ''/c'' to clear the current input statement. mysql>

Mensaje de MariaDB

Type ''help;'' or ''/h'' for help. Type ''/c'' to clear the current input statement. MariaDB [(none)]>

Ahora que tiene acceso de root, puede cambiar la contraseña de root.

Paso 4: Cambiar la contraseña de root

mysql> FLUSH PRIVILEGES;

Ahora podemos cambiar la contraseña de root.

Para MySQL 5.7.6 y posteriores , así como MariaDB 10.1.20 y posteriores , use el siguiente comando:

mysql> ALTER USER ''root''@''localhost'' IDENTIFIED BY ''new_password'';

Para MySQL 5.7.5 y anteriores , así como MariaDB 10.1.20 y anteriores , use:

mysql> SET PASSWORD FOR ''root''@''localhost'' = PASSWORD(''new_password'');

Asegúrese de reemplazar new_password con su nueva contraseña de elección.

Nota: Si el comando ALTER USER no funciona, generalmente es indicativo de un problema mayor. Sin embargo, puede intentar UPDATE ... SET para restablecer la contraseña de root en su lugar.

[IMPORTANTE] Esta es la línea específica que solucionó mi problema particular:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD(''new_password'') WHERE User = ''root'' AND Host = ''localhost'';

Recuerde volver a cargar las tablas de concesión después de esto.

En cualquier caso, debería ver la confirmación de que el comando se ha ejecutado correctamente.

Query OK, 0 rows affected (0.00 sec)

La contraseña se ha cambiado, por lo que ahora puede detener la instancia manual del servidor de base de datos y reiniciarla como estaba antes.

Paso 5: reinicie el servidor de la base de datos normalmente

El tutorial incluye algunos pasos adicionales para reiniciar la base de datos, pero la única pieza que usé fue esta:

Para MySQL, use: $ sudo systemctl start mysql

Para MariaDB, use:

$ sudo systemctl start mariadb

Ahora puede confirmar que la nueva contraseña se ha aplicado correctamente ejecutando:

$ mysql -u root -p

El comando ahora debe solicitar la contraseña recién asignada. Introdúzcalo y debería obtener acceso al indicador de la base de datos como se esperaba.

Conclusión

Ahora tiene acceso administrativo al servidor MySQL o MariaDB restaurado. Asegúrese de que la nueva contraseña de root que elija sea segura y segura y manténgala en un lugar seguro.


Para los nuevos usuarios de Linux, esta podría ser una tarea desalentadora. Permítanme actualizar esto con mysql 8 (la última versión disponible en este momento es 8.0.12 como el 12-sep-2018)

  1. Abra el archivo de configuración "mysqld.cnf" en "/etc/mysql/mysql.conf.d/".
  2. Agregue skip-grant-tables a la siguiente línea de texto [mysql] y guárdelo.
  3. Reinicie el servicio mysql como "sudo service mysql restart". Ahora su mysql está libre de autenticación.
  4. Conéctese al cliente mysql (también conocido como mysql-shell) como mysql -u root -p . No hay una contraseña para ingresar a partir de ahora.
  5. ejecutar privilegios de descarga de comandos sql ;
  6. Restablezca la contraseña ahora como ALTERAR USUARIO ''root'' @ ''localhost'' IDENTIFICADO POR ''MyNewPassword'';
  7. Ahora volvamos al estado normal; elimine esa línea "skip-grant-tables" de "mysqld.cnf" y reinicie el servicio.

Eso es.


Todas las soluciones que encontré fueron mucho más complejas de lo necesario y ninguna funcionó para mí. Aquí está la solución que resolvió mi problema. No es necesario reiniciar mysqld o iniciarlo con privilegios especiales.

sudo mysql ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''root'';

Con una sola consulta, estamos cambiando auth_plugin a mysql_native_password y configurando la contraseña de root en root (no dude en cambiarla en la consulta)

Ahora debería poder iniciar sesión con root. Se puede encontrar más información en la documentación de mysql

(salga de la consola mysql con Ctrl + D o escribiendo exit )