2012-01-24 18 views
5

He visto esta misma pregunta en muchas formas en este sitio y en muchos otros foros. Sin embargo, he probado todas las soluciones y aún tengo el mismo resultado. Estoy bastante seguro de que una vez tuve acceso de root en este servidor MySQL en el pasado e incluso pude usar la herramienta phpMyAdmin para crear bases de datos entre otras consultas. Ahora, cuando voy a phpMyAdmin y haga clic en bases de datos me da la bienvenida:Perdí todos los privilegios en MYSQL

enter image description here

Si utilizo la herramienta de comando que puedo iniciar sesión usando:

mysql -u root -p 

conseguir que le pida que introduzca una contraseña y Lo hago Cuando trato de hacer cualquier otra cosa, por ejemplo:

mysql> SELECT user, host FROM mysql.user; 

I get the following: 
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user' 

que también han seguido este artículo (http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/), ya que sí, estoy ssh'ing a este servidor MySQL desde una máquina remota. Una vez más, cuando intento:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 

En diversas formas, me da la bienvenida una desagradable:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

A pesar de que estoy poniendo la misma contraseña que solía Identifícate! También quiero mencionar que actualicé mis recursos de pera ayer y me pregunto si esta fue la causa de este desastre ...

Si alguien puede guiarme, realmente lo agradecería. Gracias por todo su tiempo y consideración.

Elshae

**** **** Actualización Al tratar de solucionar problemas y ejecutar mysqld ahora no puedo iniciar el servidor de copia de seguridad! Cada vez que corro:

/etc/init.d/mysql start 
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 

¿Qué debo hacer?

+0

Olvidé decir que también he hecho: mysql> SHOW GRANTS; + ------------------------------------------------ -------------------------------------------------- ----------- + | Subvenciones para root @ localhost | + ------------------------------------------------ -------------------------------------------------- ----------- + | USO DE LA SUBVENCIÓN EN *. * A 'root' @ 'localhost' IDENTIFICADO POR PASSWOR | + ------------------------------------------------ -------------------------------------------------- ----------- + 1 fila en el conjunto (0,00 segundos) – elshae

+0

¿Cómo se instaló/inició su servidor MySQL? Hay una opción que lo hace ignorar las tablas de permisos al inicio, pero tiene efectos secundarios como los que describes ... – Romain

+0

Ouch, desafortunadamente no lo instalé. ¿Hay alguna forma de que pueda obtener esa información? Además, me detuve y lo inicié antes de usar los comandos /etc/init.d/mysql start/stop si eso reproduce cualquier parte. – elshae

Respuesta

2

Agradezco la opinión de todos, finalmente la obtuve al máximo parte.Para combatir el problema de

/etc/init.d/mysql start 
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 

lo hice:

ps aux | grep mysql 

Lo que me dio:

root  15265 0.0 0.1 3896 1284 pts/10 S 12:41 0:00 /bin/sh /usr/bin/mysqld_safe 
mysql 15302 1.6 2.8 132532 29600 pts/10 Sl 12:41 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock 
root  15303 0.0 0.0 3008 608 pts/10 S 12:41 0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld 
root  16160 0.0 0.0 3120 708 pts/10 R+ 12:42 0:00 grep mysql 

luego hice:

kill -9 15265 
kill -9 15302 

Después de que yo era capaz de Inicie MySQL con:

/etc/init.d/mysql start 

A partir de ahí me encontré con este artículo: https://help.ubuntu.com/community/MysqlPasswordReset y la magia para mí no era:

/usr/sbin/mysqld --skip-grant-tables --skip-networking & 

yo era capaz de seguir el hilo y también hice:

GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'yournewrootpassword' WITH GRANT OPTION; 

El único Lo que es un poco extraño es que la raíz todavía no tiene el derecho de crear bases de datos desde phpMyAdmin, entre otros privilegios que la raíz necesita. Sin embargo, puedo crear bases de datos desde la línea de comandos y, por el momento, ¡puedo vivir con eso!

Gracias de nuevo a todos por su tiempo y toda la ayuda!

0

Puesto que usted tiene acceso local para el cliente, es posible que intente restablecer la contraseña de root con mysqladmin:

> mysqladmin password yournewrootpassword 

Si puede iniciar sesión con éxito, entonces puede ser necesario conceder acceso root una vez más antes de pueden acceder a las bases de datos:

GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'yournewrootpassword' WITH GRANT OPTION; 
+1

Gracias por su respuesta, pero me aparece: mysqladmin: no se pudo conectar al servidor en 'localhost' error: 'Acceso denegado para el usuario' root '@' localhost '(usando la contraseña: NO)' – elshae

0

Comando GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; sólo funcionará si está en el sistema como un usuario que tiene todos los derechos ...

Como no tiene derechos para GRANT, en su caso la declaración anterior no funcionará ... Póngase en contacto con el administrador y obtenga ACCESO para conectarse ...

+0

Soy el administrador ... y esta es la única cuenta en el DB que parece ... – elshae

6

Deja de servicio MySQL (tipo UNIX):

/etc/init.d/mysqld stop 

Comience su MySQL con privilegios:

/usr/bin/mysqld_safe --skip-grant-tables 

Conectar a base de datos MySQL con el usuario root

/usr/bin/mysql -uroot -p mysql 

actualización de raíz privilegios

update mysql.user 
set Select_priv='Y', 
    Insert_priv='Y', 
    Update_priv='Y', 
    Delete_priv='Y', 
    Create_priv='Y', 
    Drop_priv='Y', 
    Reload_priv='Y', 
    Shutdown_priv='Y', 
    Process_priv='Y', 
    File_priv='Y', 
    Grant_priv='Y', 
    References_priv='Y', 
    Index_priv='Y', 
    Alter_priv='Y', 
    Show_db_priv='Y', 
    Super_priv='Y', 
    Create_tmp_table_priv='Y', 
    Lock_tables_priv='Y', 
    Execute_priv='Y', 
    Repl_slave_priv='Y', 
    Repl_client_priv='Y', 
    Create_view_priv='Y', 
    Show_view_priv='Y', 
    Create_routine_priv='Y', 
    Alter_routine_priv='Y', 
    Create_user_priv='Y', 
    Event_priv='Y', 
    Trigger_priv='Y' 
where User='root'; 

Después de eso, solo tiene que detener el servicio MySQL y comenzar de nuevo.

Cuestiones relacionadas