%3A%20Acceso%20denegado%20para%20el%20usuario%20'root'%40'localhost'%20(usando%20contrase%C3%B1a%3A%20NO).png)
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
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 -p
para 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.sock
o lo que sea. Por lo tanto, necesita dos GRANT
instrucciones diferentes en su mysql.user
tabla (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 GRANT
declaració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.