2009-03-13 40 views
12

Estoy ejecutando MySQL 5.x en mi caja de Windows local y, usando el administrador de MySQL, no puedo conectarme a las bases de datos que creé usando la cuenta de root. El error que consigo es:MySQL: no puedo acceder a la cuenta de root

MySQL Número de error 1045 Acceso denegado para el usuario 'root' @ 'localhost' (usando contraseña: SÍ)

No puedo recordar el cambio de las credenciales de cuenta de la raíz , pero sé que traté de darles acceso a otras computadoras en el acceso LAN al db agregando sus direcciones IP. Una cosa que hice para una de las direcciones IP fue especificar el acceso a la cuenta 'root' en lugar de root, es decir, rodeé la raíz con caracteres de comillas simples. Todos usan el administrador de MySQL. ¿Podría ser esta la razón por la que no puedo iniciar sesión usando root?

Además, ¿hay alguna manera de crear una nueva cuenta o reiniciarla? Como mencioné anteriormente, tengo acceso completo a mi caja.

ver estas preguntas

+1

He intentado --skip-grant-tables y conécting usando -u root pero sigo recibiendo: Acceso denegado para el usuario 'root' @ 'localhos t '(usando la contraseña: NO). –

Respuesta

14

Puede usar los archivos de inicio. Consulte la documentación oficial de MySQL en How to Reset the Root Password (incluidos los comentarios sobre soluciones alternativas).

Así que, básicamente, el uso de archivos de inicialización, puede añadir cualquier consulta SQL que necesita para fijar el acceso del usuario (como GRAND, CREATE, FLUSH PRIVILEGES, etc.) en el fichero init (cualquier archivo).

Aquí está mi ejemplo de la recuperación de la cuenta root:

echo "CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';" > your_init_file.sql 
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" >> your_init_file.sql 
echo "FLUSH PRIVILEGES;" >> your_init_file.sql 

y después de haber creado el archivo, puede ejecutar:

killall mysqld 
mysqld_safe --init-file=$PWD/your_init_file.sql 

a continuación para comprobar si esto funcionó, pulse Ctrl + Z y escriba: bg para ejecutar el proceso desde el primer plano hasta el fondo, luego verifique su acceso por:

mysql -u root -proot 
mysql> show grants; 
+-------------------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]                     | 
+-------------------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' | 

Consulte también:

+1

Esto es bueno, salud. Las guías oficiales parecían un poco largas y torpes ... –

+0

Tiene el mismo problema. También tengo que agregar estas líneas antes de crear una línea de usuario en su_init_file.sql ** drop user 'root' @ 'localhost'; privilegios de descarga; ** –

1

Tengo el mismo problema al acceder a MySQL con raíz.El problema que encontré es que algunos archivos de base de datos no tienen permiso del usuario de mysql, que es el usuario que inició el demonio del servidor de mysql.

Podemos verificar esto con el comando ls -l /var/lib/mysql, si el usuario de mysql no tiene permiso para leer o escribir en algunos archivos o directorios, eso podría causar un problema. Podemos cambiar el propietario o el modo de esos archivos o directorios con los comandos chown/chmod.

Después de estos cambios, reinicie el demonio mysqld y acceder con la raíz con el comando:

mysql -u root 

A continuación, cambiar contraseñas o crear otros usuarios para conectarse a MySQL.

HTH

2

Esto funcionó para mí:

https://blog.dotkam.com/2007/04/10/mysql-reset-lost-root-password/

Paso 1: Detener MySQL demonio si se está ejecutando actualmente

ps -ef | grep mysql  - checks if mysql/mysqld is one of the running processes. 

    pkill mysqld    - kills the daemon, if it is running. 

Paso 2: Ejecutar MySQL demonio segura con saltar tablas de concesión

mysqld_safe --skip-grant-tables & 

    mysql -u root mysql 

Paso 3: Entrar a MySQL como root sin contraseña

mysql -u root mysql 

Paso 4: Ejecutar consulta de actualización para restablecer la contraseña de root

UPDATE user SET password=PASSWORD("value=42") WHERE user="root"; 
    FLUSH PRIVILEGES; 

Paso 5: Deje de MySQL demonio segura

Paso 6: Inicie el daemon MySQL

Cuestiones relacionadas