Puede ocurrir (aunque es raro) que el usuario root de MySQL pierda los privilegios respecto a las bases de datos. Esto puede ser solucionado del siguiente modo:
Parar el servicio mysql (Entrar en services.msc y parar el servicio).
Iniciar mysql desde línea de comandos con la opción –skip-grant-tables:
mysqld --skip-grant-tables
o bien:
mysqld_safe --skip-grant-tables --skip-networking&
Abrimos otra consola, y nos conectamos al mysql con el usuario root, pero sin password:
mysql -u root
Seleccionamos la base de datos mysql:
use mysql;
Añadimos un nuevo superusuario llamado root2, de este modo creamos un ususario con todos los privilegios, a través del cual otorgaremos de nuevo los privilegios al usuario root:
INSERT INTO user VALUES('localhost', 'root2', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
Nota: La cantidad de columnas en el VALUES del INSERT puede variar según la versión del MySQL. Hacer un show create tables user; para ver cuantas columnas tiene la tabla.
Paramos el servicio mysqld –skip-grant-tables, podemos matarlo desde el taskmanager y arrancamos el servicio mysql de forma normal.
Accedemos con el nuevo superusuario (no tiene clave):
mysql -u root2
Otorgamos al usuario root los permisos necesarios:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root_password' WITH GRANT OPTION;
Recargamos los privilegios:
FLUSH PRIVILEGES;
Eliminamos el usuario root2:
use mysql;
delete from user where user='root2';
flush privileges;
domingo, 29 de agosto de 2010
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario