Acceso denegado para el usuario 'root @ localhost' (usando contraseña: NO)

115

Soy nuevo en MySQL, estoy intentando ejecutar WordPress en mi escritorio de Windows y necesita MySQL.

Instalo todo lo Web Platform Installerque me proporciona Microsoft. Nunca configuré una contraseña de root para MySQL y en el paso final de la instalación de WordPress, solicita una contraseña de servidor MySQL.

¿Cuál es la contraseña predeterminada de root (si existe) y cómo cambiarla?

Lo intenté:

mysql -u root password '123'

Pero me muestra:

Access denied for user 'root@localhost' (using password:NO)

Después de esto intento:

mysql -u root -p

Sin embargo, solicita una contraseña que no tengo.


Actualización : como sugirió Bozho, hice lo siguiente:

  1. Detuve el servicio MySQL de los servicios de Windows
  2. CMD abierto
  3. Cambió la ubicación a c: \ archivos de programa \ mysql \ bin
  4. Ejecutó el siguiente comando

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. El comando se ejecutó con una advertencia sobre el conjunto de caracteres que mencioné a continuación

  6. Inicio el servicio MySQL desde los servicios de Windows
  7. Escribo en la linea de comando

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. La línea de comando muestra el siguiente error

    Access denied for user 'root@localhost' (using password:**YES**)

¿Cómo puedo solucionar esto? Estoy esperando saber de usted.

Nasser Hadjloo
fuente
1
El primer comando es incorrecto, debería ser -po --password, pero no password. Es por eso que mysql responde USANDO CONTRASEÑA NO.
Konerak
3
Nadie parece haberle dado la respuesta obvia. La contraseña del rootID de usuario está en blanco después de la instalación inicial. Así que hazlo mysql -u root -py luego presiona Enter, es decir, deja la contraseña en blanco. Luego, por supuesto, ponga una contraseña en el rootID de usuario.
RiggsFolly
1
@RiggsFolly no, ¡no funciona! la contraseña en blanco me da acceso denegado!
J86
Quiero agregar un comentario ya que no estoy seguro de que la respuesta aceptada sea la correcta. Para mí, escribir mysql -u root -p y luego, una vez que me pida la contraseña, dar la correcta (la que se estableció en la instalación) funcionó. En cambio, probar el nombre de una base de datos a la -p con una base de datos que sé que no funcionó.
Carmine Tambascia

Respuestas:

48

Puede restablecer su contraseña de root . Tenga en cuenta que no es recomendable utilizar root sin contraseña.

Bozho
fuente
@Bozho - Sigo la instrucción ay creo un archivo de texto y lo llamo desde el comando mencionado, luego me enfrento con 100608 [warning] --default-character-set is deprecated and will be removed in a future release. please use --character-set-server instead.------------------------ -------- y finalmente cuando vuelvo a iniciar mi servicio mysql me encuentro con el error exacto pero esta vez con (using password:yes)¿qué debo hacer?
Nasser Hadjloo
@Bozo - Tenga en cuenta que no pude ejecutar su comando con mysqldt-ntlo ejecuto por mysqldt -ntEn realidad, el primero no es reconocible para cmd. Estoy esperando saber de usted.
Nasser Hadjloo
@Bozho - Actualicé mi pregunta con el error. Gracias por tu tiempo.
Nasser Hadjloo
@Bozho - ¿hay alguna manera de actualizar / personalizar mis errores de mysql? ** Actualizar "Acceso denegado para usuario 'root @ localhost' (usando contraseña: NO)" a "Acceso denegado para usuario 'myname @ localhost' (usando contraseña: NO)" **
Hitesh
81

por este tipo de error; solo tiene que establecer una nueva contraseña para el usuario root como administrador. siga los pasos de la siguiente manera:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Detenga el servicio / demonio de mysql en ejecución

    [root ~]# service mysql stop   
    mysql stop/waiting
  2. Inicie mysql sin ningún privilegio usando la siguiente opción; Esta opción se usa para iniciar y no usar el sistema de privilegios de MySQL.

    [root ~]# mysqld_safe --skip-grant-tables &

En este momento, la terminal parecerá detenerse . Déjalo así y usa la nueva terminal para los siguientes pasos.

  1. ingrese el símbolo del sistema de mysql

    [root ~]# mysql -u root
    mysql> 
  2. Corrija la configuración de permisos del usuario root;

    mysql> use mysql;
    Database changed
    mysql> select * from  user;
    Empty set (0.00 sec)
    mysql> truncate table user;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
    Query OK, 0 rows affected (0.01 sec)

* si no desea ninguna contraseña o más bien una contraseña vacía

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Confirma los resultados:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Salga del shell y reinicie mysql en modo normal.

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
  2. Ahora puede iniciar sesión con éxito como usuario root con la contraseña que estableció

     [root ~]# mysql -u root -pYourNewPassword 
     mysql> 
usuario2977819
fuente
2
Presione Enter después de "[root ~] # mysqld_safe --skip-grant-tables &" y abra otra terminal para ingresar "[root ~] # mysql -u root"
Liuda
Me encontré con este problema, y ​​lo hice mucho, solo olvídate de reiniciar los servicios de db ... ¡muchas gracias!
Bruce Lee
3
En el paso 3, obtengoERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
MrMartin
4
@MrMartin, crea ese directorio sudo mkdir -p /var/run/mysqldy dale permisosudo chown mysql:mysql /var/run/mysqld
buen día
esta es la respuesta que me ayudó mucho!
Jones G
17

1) Puede establecer la contraseña de root invocando la consola MySQL. Está localizado en

C:\wamp\bin\mysql\mysql5.1.53\bin por defecto.

Vaya al directorio y escriba MySQL. luego configure la contraseña de la siguiente manera.

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) Puede configurar la aplicación phpmyadmin de wamp para el usuario root editando

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Nota: - si está utilizando xampp, el archivo se ubicará en

C:\xampp\phpMyadmin\config.inc.php

Se parece a esto:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

El error "Acceso denegado para el usuario 'root @ localhost' (usando contraseña: NO)" se resolverá cuando establezca $cfg['Servers'][$i]['AllowNoPassword']en falso

Si cambió en secreto la contraseña de 'root @ localhost', entonces tiene que hacer 2 cosas para resolver el error "Acceso denegado para el usuario 'root @ localhost'":

  1. si ['contraseña'] tiene comillas vacías como '' entonces ponga su contraseña entre comillas.
  2. cambie el (usando contraseña: NO) a (usando contraseña: SÍ)

Esto resolverá el error.

Nota: phpmyadmin es una herramienta separada que viene con wamp. Simplemente proporciona una interfaz para MySQL. si cambia la contraseña de mi raíz sql, entonces debería cambiar las configuraciones de phpmyadmin. Por lo general, phpmyadmin está configurado para el usuario root.

yellobird
fuente
no, no puedes .. mysql no se iniciará: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> mysql ERROR 1045 (28000): Acceso denegado para el usuario 'ODBC' @ 'localhost' (usando contraseña: NO)
Jaxx0rr
9

Recibía el mismo error en el capitán de OS X El. Mysql versión 5.7. Pude conectarme a mysql con root después de ejecutar estos pasos.

Detenga el servidor mysql

sudo mysql.server stop

Inicie mysql en modo seguro

sudo mysqld_safe --skip-grant-tables

Usando mysqld, cambie la base de datos a mysql y actualice los detalles para el usuario 'root'.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

Después de eso, elimine el proceso 'mysqld_safe' e inicie mysql normalmente. Debería poder iniciar sesión en mysql usando root y una nueva contraseña. Documentos SQL para más detalles

Sushantkumar M
fuente
4

Simplemente edite el my.iniarchivo en la ruta C: \ xampp \ mysql \ bin. Solo agrega:

skip-grant-tables

línea entre líneas de # The MySQL server [mysqld]y port=3306. Luego reinicie el servidor MySQL.

Parece:

Captura de pantalla

Ryan Oscar
fuente
Cuando hago esto, aparece otro errorcommunications link failure
Ahmed Hussein
3

Asegúrese de que el servicio MySQL se esté ejecutando en su máquina, luego siga las instrucciones de MySQL para configurar inicialmente la raíz (busque 'windows' y lo llevará a los pasos para configurar la raíz):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html

sholsapp
fuente
Esta solución no me funcionará porque no tengo la contraseña que necesito en el segundo paso.
Nasser Hadjloo
Esto es lo que estaba viendo cuando envié el enlace, ¿estás seguro de que no funciona? No veo ninguna referencia a la contraseña anterior. Para Windows, haga esto: shell> mysql -u root mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('newpwd'); mysql> ESTABLECER CONTRASEÑA PARA 'root'@'127.0.0.1' = CONTRASEÑA ('newpwd'); mysql> ESTABLECER CONTRASEÑA PARA 'root' @ '%' = CONTRASEÑA ('newpwd');
sholsapp
1
Como dije antes cuando escribo, mysql -u roottengo un problema y no puedo iniciar sesión en mysql para ejecutar la segunda línea. Entonces, ¿cómo usar este comando?
Nasser Hadjloo
3

Use mysql -u root -p Le pedirá contraseña, inserte la contraseña e ingrese.

Vikash Kumar
fuente
Esto funcionó después de que me negaran el acceso a los usuarios.
Shawn W
2

Otra solución si alguien recibe el error La contraseña especificada para la cuenta de usuario 'raíz' no es válida o no se pudo conectar al servidor de la base de datos también con la contraseña correcta, es la siguiente

• En el registro de Windows, elimine la clave de registro mysql_pwd en HKCU \ Software \ Microsoft \ WebPlatformInstaller

• Desinstale la versión anterior del conector MySQL .NET

• Descargue e instale el conector MySql .NET más reciente .

Silverstorm
fuente
Verificar la contraseña y el nombre de la base de datos funcionó para mí .. +1
Abhinav Dobhal
2

Para MySQL 5.7. Estos son los siguientes pasos:

Detenga su servidor MySQL por completo. Esto se puede hacer accediendo a la ventana Servicios dentro de Windows XP y Windows Server 2003, donde puede detener el servicio MySQL.

Abra el símbolo del sistema de MS-DOS usando "cmd" dentro de la ventana Ejecutar. En su interior, navegue hasta su carpeta bin de MySQL, como C: \ MySQL \ bin usando el comando cd.

Ejecute el siguiente comando en el símbolo del sistema: mysqld.exe -u root --skip-grant-tables

Deje el símbolo del sistema actual de MS-DOS como está y abra una nueva ventana del símbolo del sistema de MS-DOS.

Navegue a su carpeta bin MySQL, como C: \ MySQL \ bin usando el comando cd.

Ingrese mysql y presione enter.

Ahora debería tener funcionando el símbolo del sistema de MySQL. Escriba use mysql; para que cambiemos a la base de datos "mysql".

Ejecute el siguiente comando para actualizar la contraseña:

actualizar el conjunto de usuarios authentication_string = contraseña ('1111') donde usuario = 'root';

Katie
fuente
1

En su código, reemplace la 'raíz' con su nombre de usuario del servidor y la contraseña con su contraseña del servidor. Por ejemplo, si tiene DB y sus archivos php en el servidor http://www.example.com , obviamente tendrá que ingresar al sitio de este servidor usando su nombre de usuario y contraseña.

Pir Fahim Shah
fuente
1

Si está utilizando XAMPP, simplemente vaya a C:\xampp\phpMyAdminy luego abra la línea de config.inc.phpbúsqueda $cfg['Servers'][$i]['password'] = ''y coloque su contraseña allí.

Ajay Rawat
fuente
1

Para obtener información, recibo un error después de cambiar la contraseña:

Acceso denegado para el usuario 'root' @ 'localhost' (usando contraseña: NO)

Acceso denegado para el usuario 'root' @ 'localhost' (usando contraseña: SÍ)

En ambos casos hubo error.

Pero la cosa es que después de eso lo probé con

mysql -uroot -ppassword en vez de

mysql -u root -p password -> con espacios entre -uroot y -ppassword, así que si alguien tiene problemas, puede intentarlo de esta manera.

profiile_samir
fuente
0

Algunas veces simplemente sucede debido a la instalación de Wamp o al cambio de las opciones de contraseña del usuario root. Uno puede usar privilegios -> root (usuario) y luego establecer la opción de contraseña en NO para ejecutar las cosas sin ninguna contraseña O establecer la contraseña y usarla en la aplicación.

Sayyad
fuente
0
  1. Cambie la contraseña de config.inc.phppresente en C:\xampp\phpMyAdmin.
  2. Escribe mysql -u root -pel símbolo del sistema.
  3. Se le pedirá que ingrese la contraseña. Ingrese la contraseña que actualizó en el config.inc.php.
usuario12682744
fuente
0

si cambió el puerto a uno no estándar, entonces debe especificarlo:

$ conexión = mysqli_connect ('localhost: 3308', 'root', '', 'loginapp');

Mitch
fuente
-3
mysqladmin -u root -p password

entra tu current password

luego

entra tu new password

djrconcepts
fuente
1
El punto es que el OP no conoce la contraseña actual, porque nunca se estableció .
Nateowami
Sabía mi contraseña pero tuve problemas para iniciar sesión con la contraseña temporal. esta respuesta funcionó para mí
Bernard