ERROR 1045 (28000): Acceso denegado para el usuario ‘root’ @ ‘localhost’ (usando la contraseña: YES)

Soy un ingeniero eléctrico que juega principalmente con el sistema eléctrico en lugar de progtwigr. Recientemente, he estado siguiendo un manual para instalar un paquete de software en Ubuntu. En realidad, no tengo ningún conocimiento sobre mySQL . He hecho las siguientes instalaciones en mi Ubuntu.

 sudo apt-get update sudo apt-get install mysql-server-5.5 sudo apt-get install mysql-client-5.5 sudo apt-get install mysql-common sudo apt-get install glade sudo apt-get install ntp 

Entonces lo hago

 me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql" 

Terminé con el siguiente mensaje de error.

 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

¿Cómo puedo solucionarlo y continuar?

Nota: Para MySQL 5.7+ , consulte la respuesta de @Lahiru a esta pregunta. Eso contiene más información actual.

Para MySQL <5.7:

La contraseña de root predeterminada está en blanco (es decir, cadena vacía) no en la root . Entonces puedes iniciar sesión como:

 mysql -u root 

Obviamente debe cambiar su contraseña de root después de la instalación

 mysqladmin -u root password [newpassword] 

En la mayoría de los casos, también debe configurar cuentas de usuario individuales antes de trabajar extensamente con la base de datos.

Pude resolver este problema ejecutando esta statement

 sudo dpkg-reconfigure mysql-server-5.5 

Lo cual cambiará la contraseña de root.

¡Tienes que restablecer la contraseña! pasos para mac osx (probado y en funcionamiento) y ubuntu

Detener MySQL usando

 sudo service mysql stop 

o

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

Comience en modo seguro:

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

(la línea superior es el comando completo)

Este será un comando continuo hasta que finalice el proceso, por lo tanto abra otra ventana de shell / terminal e inicie sesión sin contraseña:

 $ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; 

Inicie MySQL usando:

 sudo service mysql start 

o

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

su nueva contraseña es ‘contraseña’.

si el problema persiste trate de forzar el cambio del pase

 /etc/init.d/mysql stop mysqld_safe --skip-grant-tables & mysql -u root 

Configurar nueva contraseña de usuario root de MySQL

 use mysql; update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; flush privileges; quit; 

Detener el servidor MySQL:

 /etc/init.d/mysql stop 

Inicie el servidor MySQL y pruébelo:

 mysql -u root -p 

En la puesta en marcha inicial del servidor ocurre lo siguiente, dado que el directorio de datos del servidor está vacío:

  • El servidor está inicializado.
  • El certificado SSL y los archivos clave se generan en el directorio de datos.
  • El complemento validate_password está instalado y habilitado.
  • Se crea la cuenta de superusuario ‘root’ @ ‘localhost’. La contraseña para el superusuario se configura y almacena en el archivo de registro de errores.

Para revelarlo, use el siguiente comando:

 shell> sudo grep 'temporary password' /var/log/mysqld.log 

Cambie la contraseña de root tan pronto como sea posible iniciando sesión con la contraseña temporal generada y establezca una contraseña personalizada para la cuenta de superusuario:

 shell> mysql -uroot -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 

Estoy usando Ubuntu-16.04: mysql instalado – 5.7. Tuve el mismo problema: inicio de sesión denegado para el usuario root.

Probé los siguientes pasos:

1. dpkg --get-selections | grep mysql dpkg --get-selections | grep mysql (para obtener la versión de mysql).

2. dpkg-reconfigure mysql-server-5.7

3. mysql -u root -p

Sin -p que no te pida que pidas una contraseña. Una vez que esté dentro, puede crear un usuario con una contraseña siguiendo estos pasos:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

Salga de la raíz e inicie sesión desde el que dio arriba.

mysql -u -p

Por alguna razón, solo escribir mysql no funciona. EN ABSOLUTO. Sugiero que sea un hábito usar mysql -u -p .

Me encontré con este problema tan molesto y encontré muchas respuestas que no funcionaron. La mejor solución que encontré fue desinstalar mysql por completo y volver a instalarlo. Al volver a instalar, estableciste una contraseña de root y esto solucionó el problema.

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5 sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get autoremove sudo apt-get autoclean

Encontré este código en otro lugar, así que no me atribuyo ningún mérito. Pero funciona. Para instalar mysql después de desinstalarlo, creo que el océano digital tiene un buen tutorial sobre él. Mira mi esencia para esto.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096

Sé que esta es una pregunta antigua, pero creo que esto podría ayudar a alguien. Recientemente me enfrenté al mismo problema, pero en mi caso, recuerdo mi contraseña bastante bien, pero no dejaba de darme el mismo error. Intenté muchas soluciones pero aún no me sirvió, entonces probé esto

 mysql -u root -p 

después de lo cual te pide una contraseña como esta

 Enter password: 

y luego tecleé la contraseña que usé. Eso es todo

Por favor, lea la documentación oficial: Mysql: Cómo restablecer la contraseña de root

Si tienes acceso a la terminal:

MySQL 5.7.6 y posterior:

 $ mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 

MySQL 5.7.5 y anterior:

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

Estoy usando mysql-5.7.12-osx10.11-x86_64.dmg en Mac OSX

El proceso de instalación configura automáticamente una contraseña temporal para el usuario root. Deberías guardar la contraseña. La contraseña no puede ser recuperada.

Sigue las instrucciones

  1. Ir a cd /usr/local/mysql/bin/
  2. Ingrese la contraseña temporal (que se vería como “tsO07JF1 => 3”)
  3. Deberías obtener el prompt mysql>.
  4. Ejecute, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}'); Si desea establecer su contraseña: “root”, entonces el comando sería ” SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. Ejecute ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. Ejecutar exit
  7. Ejecute ./mysql -u root -p
  8. Escribe tu contraseña. En mi caso, escribiría “raíz” (sin cita)
  9. Eso es todo.

Para su comodidad, debe agregar "/usr/local/mysql/bin" a su PATH

Ahora, desde cualquier lugar, puede escribir ./mysql -u root -p y luego escribir la contraseña y obtendrá el prompt mysql>.

Espero eso ayude.

Sucede cuando falta su contraseña.

Pasos para cambiar la contraseña cuando la ha olvidado:

  1. Detener el servidor MySQL (en Linux):

     sudo systemctl stop mysql 
  2. Inicie la base de datos sin cargar las tablas de concesión o habilitar la red:

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

    El ampersand al final de este comando hará que este proceso se ejecute en
    de modo que pueda continuar usando su terminal y ejecutar #mysql -u root, no le pedirá la contraseña.

    Si obtiene un error como el siguiente:

    2018-02-12T08: 57: 39.826071Z mysqld_safe Directory ‘/ var / run / mysqld’ para UNIX
    el archivo de socket no existe mysql -u root ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket
    ‘/var/run/mysqld/mysqld.sock’ (2) [1] + Salir 1

  3. Haga el directorio de servicio MySQL.

     sudo mkdir /var/run/mysqld 

    Dale permiso al usuario de MySQL para escribir en el directorio del servicio.

     sudo chown mysql: /var/run/mysqld 
  4. Ejecute el mismo comando en el paso 2 para ejecutar mysql en segundo plano.

  5. Ejecute mysql -u root obtendrá la consola mysql sin ingresar contraseña.

    Ejecuta estos comandos

     FLUSH PRIVILEGES; 

    Para MySQL 5.7.6 y posterior

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

    Para MySQL 5.7.5 y anteriores

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

    Si el comando ALTER USER no funciona, use:

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

Ahora salga

  1. Para detener la instancia iniciada manualmente

     sudo kill `cat /var/run/mysqld/mysqld.pid` 
  2. Reiniciar mysql

     sudo systemctl start mysql 

si el problema persiste trate de forzar el cambio del pase

Detener el servidor MySQL (en Linux):

 /etc/init.d/mysql stop 

Detener el servidor MySQL (en Mac OS X):

 mysql.server stop 

Inicie el demonio mysqld_safe con –skip-grant-tables

 mysqld_safe --skip-grant-tables & mysql -u root 

Configurar nueva contraseña de usuario root de MySQL

 use mysql; update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; flush privileges; quit; 

Detener el servidor MySQL (en Linux):

 /etc/init.d/mysql stop 

Detener el servidor MySQL (en Mac OS X):

 mysql.server stop 

Inicie el servicio de servidor MySQL y pruebe para iniciar sesión por root:

 mysql -u root -p 

La respuesta puede sonar tonta, pero después de perder horas, así es como lo hice funcionar

 mysql -u root -p 

Recibí el mensaje de error

 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

Aunque estaba escribiendo la contraseña correcta (la contraseña temporal que obtienes la primera vez que instalas mysql)

Lo hice bien cuando escribí la contraseña cuando el mensaje de contraseña parpadeaba

Solo una línea y solucionó mi problema.

 sudo dpkg-reconfigure mysql-server-5.5 

En Ubuntu 16.04 (MySQL versión 5.7.13) pude resolver el problema con los pasos a continuación:

  1. Siga las instrucciones de la sección B.5.3.2.2 Restablecimiento de la contraseña raíz: Unix y sistemas similares a Unix Manual de referencia de MySQL 5.7

  2. Cuando probé #sudo mysqld_safe –init-file = / home / me / mysql-init & falló. El error fue en /var/log/mysql/error.log

    2016-08-10T11: 41: 20.421946Z 0 [Note] Se inició la ejecución de init_file ‘/ home / me / mysql / mysql-init’. 2016-08-10T11: 41: 20.422070Z 0 [ERROR] / usr / sbin / mysqld: No se encontró el archivo ‘/ home / me / mysql / mysql-init’ (Errcode: 13 – Permiso denegado) 2016-08-10T11: 41: 20.422096Z 0 [ERROR] Aborto

El permiso de archivo de mysql-init no era el problema, necesita editar el permiso de apparmor

  1. Edita por #sudo vi /etc/apparmor.d/usr.sbin.mysqld

     .... /var/log/mysql/ r, /var/log/mysql/** rw, # Allow user init file /home/pranab/mysql/* r, # Site-specific additions and overrides. See local/README for details. #include  } 
  2. Hacer #sudo /etc/init.d/apparmor recargar

  3. Inicie mysqld_safe nuevamente, pruebe el paso 2 anterior. Compruebe /var/log/mysql/error.log asegúrese de que no haya ningún error y de que mysqld se haya iniciado correctamente

  4. Ejecute #mysql -u root -p

    Introducir la contraseña:

Ingrese la contraseña que especificó en mysql-init. Debería poder iniciar sesión como root ahora.

  1. Cierre mysqld_safe por #sudo mysqladmin -u root -p shutdown

  2. Comience de manera normal por #sudo systemctl start mysql

La contraseña predeterminada será nula, por lo que debe cambiar la contraseña siguiendo los pasos a continuación.

conectarse a mysql

root # mysql

Use mysql

mysql> update user set password = PASSWORD (‘root’) donde User = ‘root’; Finalmente, recarga los privilegios:

mysql> privilegios de descarga; mysql> salir

En versiones recientes de MySQL no hay password en la tabla mysql.user .

Por lo tanto, debe ejecutar ALTER USER . Pon este comando de una línea en el archivo.

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

Y ejecutarlo como archivo de inicio (como usuario root o mysql)

 mysqld_safe --init-file=/home/me/mysql-init & 

El servidor MySQL debe detenerse para iniciar mysqld_safe .

Además, puede haber un problema con los permisos de apparmor para cargar este archivo de inicio. Lea más aquí https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql

Si aún no ha configurado la contraseña, ejecute mysql -uroot , me funciona.