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

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

Al principio recibí este error al intentar crear bases de datos para usar en phpmyadmin.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Busqué en varios lugares y un amigo mío me dijo que intentara reinstalar mysql ya que ayer reinstalé el servidor.

Entonces decidí reinstalar mysql y ahora ni siquiera puedo ejecutar el instalador sin recibir este error:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

También recibí el 'root'@'localhost'error al intentar instalar un script con la base de datos que creé. Este es el error que aparece cuando intenté instalar el script: Ejecutando Centos 6

ingrese la descripción de la imagen aquí

PHP 5.3.3 (el script que estoy usando es Ioncubed y PHP 5.4, no lo necesito).

EDITAR:

Si vas a preguntarte por qué no miro a mi alrededor primero, ¡ya he mirado a mi alrededor! No he tenido suerte de encontrar a otras personas que hayan tenido el mismo tipo de problema que yo.

EDITAR 2:

Instalé MySQL con éxito ahora. Sentí ganas de volver atrás y darle otra oportunidad y el instalador funcionó bien. Pero sigo recibiendo el error root@localhost proporcionado en la imagen de arriba. Ya verifiqué para asegurarme de que la configuración no estuviera usando mágicamente "root"@"localhost".

Respuesta1

La configuración de la base de datos utiliza root@localhost, y esa contraseña se eligió cuando la instaló por primera vez. No es la contraseña de root del sistema. La raíz de MySQL y la raíz del sistema son cuentas diferentes con posibles contraseñas diferentes.

Intenta recordarlo e intenta adivinarlo usando mysql -u root -ppara probar. Si no tiene suerte, busque en Google cómo eliminar la configuración de MySQL y comience de nuevo.

Respuesta2

MySQL trata de manera diferente "localhost" y "127.0.0.1"; el primero se usa para ejecutar una conexión de socket Unix /var/lib/mysql/mysql.socko lo que sea. Por lo tanto, necesita dos GRANTinstrucciones diferentes en su mysql.usertabla (al menos yo las necesito en OpenSuSE Linux; por ejemplo, en Windows, su kilometraje puede variar):

(conexión mysql como root)

GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Entonces, es obvio que su script está intentando instalarse como "root@localhost". Si no puede editar el script o la configuración del instalador, puede solucionarlo mediantetemporalmentedeshabilitar la contraseña de root:

USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

...para mayor seguridad,no cerrar sesión en mysqldespués de hacer esto. Una vez completada la instalación, deberá restablecer la contraseña de root:

GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;

Esto no resuelve el problema de¿Qué hace el script después de la instalación?. Lo más probable es que así seaaúnusar root en localhost, yaúnno utilice contraseña. Entonces, tan pronto como restablezca la contraseña, dejará de funcionar. Necesita encontrar referencias a root y localhost (pueden especificarse por separado) en la configuración del script: debe haber algo como

user = root
host = localhost
dbname = somedb

o tal vez

'username' => 'root',
"hostaddr" => "localhost",
...

y cambiarlos. Puede crear un nuevo usuario en MySQL simplemente emitiendo una nueva GRANTdeclaración.

Respuesta3

En casos normales,desbordamiento de pilaes útil. Sin embargo, en caso de conflicto entre versiones diferentes, la contraseña no se podrá restablecer correctamente. En este caso, reinstale mysql.¡¡Eso es lo que encuentro!!

Estos son los pasos: 1) busque el mysql instalado
# rpm -qa|grep mysql

2) elimine mysql
#rpm -e 'el programa'

3) elimine la biblioteca e incluya
#rm -rf /usr/lib/mysql
#rm -rf /usr/include/mysql

4) elimine la fecha de mysql o haga una copia de seguridad.
#mv /var/lib/mysql ~/mysql_backup

5)reinstalar mysql
#yum instalar mysql mysql-server

6) inicie el servicio mysql y pruébelo
#chkconfig mysqld en
#service mysqld start
#mysql -uroot -p.
En este paso, si la instalación se realiza correctamente, la contraseña debe ser nula. simplemente presione enter y acceda a la base de datos mysql.

información relacionada