Acceso denegado para el usuario ‘root’ @ ‘localhost’ (usando la contraseña: YES) (Mysql :: Error)

Intenté implementar la aplicación web en mi servidor y obtengo esta excepción de base de datos mysql “Acceso denegado para el usuario ‘root’ @ ‘localhost’ (usando la contraseña: YES) (Mysql :: Error)”

Intenté acceder a la base de datos desde el símbolo del sistema utilizando mysql -u root -p Puedo hacer todas las operaciones de la base de datos.

cual es el error

 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:771) at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3649) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1176) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2558) at com.mysql.jdbc.Connection.(Connection.java:1485) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) at com.mpigeon.DbConnection.DbConn(DbConnection.java:26) at com.mpigeon.CheckLoginHome.doGet(CheckLoginHome.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

Debe otorgar acceso a la raíz desde el host local. Revisa esta ayuda de ubuntu

Intenta usar root como …

 mysql -uroot 

luego puedes verificar diferentes usuarios y anfitriones después de iniciar sesión usando

 select user,host,password from mysql.user; 

compruebe que está poniendo espacio en blanco en la contraseña.

Me enfrenté al mismo error después de actualizar el servidor MySQL de 5.1.73 a 5.5.45. Hay otra forma de corregir ese error.

En mi caso, pude conectarme a MySQL usando la contraseña de root, pero MySQL se negó activamente a OTORGAR PRIVILEGIOS a cualquier usuario;

  1. Conéctese a MySQL como root

     mysql -u root -p 

    luego ingrese su contraseña de root de MySQL;

  2. Seleccione la base de datos;

     use mysql; 
  3. Lo más probable es que exista un solo registro para la raíz en la tabla mysql.user permita conectarse solo desde el localhost (que era en mi caso) pero por defecto debe haber dos registros para root, uno para localhost y otro para 127.0.0.1 ;

  4. Crear registro adicional para usuario root con Host='127.0.0.1' si no está allí;

      SET @s = CONCAT('INSERT INTO mysql.user SELECT ', REPLACE((SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'user' AND TABLE_SCHEMA = 'mysql') ,"Host","'127.0.0.1'"), ' FROM mysql.user WHERE User="root"'); PREPARE stmt FROM @s; EXECUTE stmt; 
  5. Además de eso, puedes ejecutar mysql_upgrade -u -p para ver si todo está bien.

Mi aplicación está usando Mura CMS y me enfrenté a este problema. Sin embargo, la solución fue la discrepancia de contraseña entre mi servidor local mysql y la contraseña en los archivos de configuración. Tan pronto como los sincronicé, funcionó.

Resolví este problema eliminando los usuarios vacíos que crean MySQL. Solo tengo usuario root y mi propio usuario. Borré el rest

Actualice la tabla de usuario en la base de datos MySQL . Y establecer una contraseña donde esté en blanco, yo estaba usando el usuario root, así que establezco la contraseña para el usuario root.

 update mysql.user set password = PASSWORD('123456') where password = ''; flush privileges; 

Y luego intenté con ATG CIM proporcionando una contraseña y funcionó bien.

Después de la actualización

http://i.stack.imgur.com/3Lchp.png

Hoy tengo este problema al instalar SugarCRM (un CRM gratuito).

El sistema no pudo conectarse a la base de datos utilizando el usuario raíz. Definitivamente puedo iniciar sesión como root desde la consola … ¿cuál era el problema?

Descubrí que en mi situación, recibía exactamente el mismo error, pero eso se debía a que la contraseña se enviaba a mysql directamente desde los datos $_POST , en otras palabras, el < carácter de mi contraseña se enviaba a mysql como < lo que significa que la contraseña fue incorrecta.

Todo lo demás no ayudó un poco. La lista de usuarios en mysql era correcta, incluido el usuario anónimo (que aparece después de las entradas de la raíz).

Busqué en Google pero no encontré una respuesta definitiva a mi problema. Utilicé KeyPass para generar una contraseña segura y pude usarla con éxito en mysql workbench para conectarla pero no desde la línea de comandos. Así que cambié el psw a uno fácil y funcionó en la línea de comando. He logrado crear una contraseña segura que fue capaz de conectarse desde la terminal. Así que mi consejo es que primero intente con una contraseña fácil antes de probar todo tipo de cosas.

Estaba ejecutando UTs y comencé a recibir mensajes de error. No estoy seguro de cuál fue el problema. Pero cuando cambié mi estilo de encoding en INTELLIJ a UTF8, comenzó a funcionar de nuevo.

acceso denegado para el usuario ‘root’ @ ‘localhost’ (usando la contraseña sí) hibernate

esta es mi URL db.url = jdbc: mysql: // localhost: 3306 / somedb? useUnicode = true & connectionCollation = utf8_general_ci & characterSetResults = utf8 & characterEncoding = utf8

De mi respuesta aquí , pensé que esto podría ser útil:

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

Paso 1: identifica 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 

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

Paso 2: detener el servidor de la base de datos

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

Puedes hacer eso para MySQL con:

 $ sudo systemctl stop mysql 

Y para MariaDB con:

 $ sudo systemctl stop mariadb 

Paso 3: reinicio del 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 comandos de la base de datos con privilegios de administrador 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 permisos, que almacenan la información de privilegios del usuario. Debido a que esto representa un pequeño 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 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 continuar utilizando su terminal.

Ahora puede conectarse a la base de datos como el usuario raíz, que no debe pedir una contraseña.

 $ mysql -u root 

Inmediatamente verá un aviso de shell de base de datos.

Aviso de MySQL

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

MariaDB Prompt

 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 para 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 para 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 indica un problema mayor. Sin embargo, puede probar UPDATE ... SET para restablecer la contraseña de root en su lugar.

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

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

Recuerde volver a cargar las tablas de permisos después de esto.

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

 Query OK, 0 rows affected (0.00 sec) 

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

Paso 5: reiniciar 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 utilicé fue la siguiente:

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 debería solicitar la nueva contraseña asignada. Ingrese, y debe obtener acceso a la solicitud de la base de datos como se esperaba.

Conclusión

Ahora tiene restablecido el acceso administrativo al servidor MySQL o MariaDB. Asegúrese de que la nueva contraseña de root que elija sea fuerte y segura, y guárdela en un lugar seguro.

Actualice la contraseña vacía en la tabla mysql.user de mysql

 use mysql; select host,user,password from mysql.user; update mysql.user set password = PASSWORD('123456') where password = ''; flush privileges;