mysql - programmingerror - navicat error 1045
¿Cómo puedo restaurar los privilegios completos del usuario raíz de MySQL? (7)
Le había negado los privilegios de insertar y volver a cargar en la raíz. Entonces, después de actualizar los permisos, FLUSH PRIVILEGES no funcionaba (debido a la falta de privilegio de recarga). Así que utilicé el usuario debian-sys-maint en Ubuntu 16.04 para restaurar los privilegios de user.root. Puede encontrar la contraseña de user.debian-sys-maint desde este archivo
sudo cat /etc/mysql/debian.cnf
Accidentalmente eliminé algunos de los privilegios de mi usuario raíz de MySQL, incluida la capacidad de modificar las tablas. ¿Hay alguna forma de restaurar este usuario a su estado original (con todos los privilegios)?
UPDATE mysql.user SET Grant_priv = ''Y'', Super_priv = ''Y'' WHERE User = ''root'';
# MySQL returned an empty result set (i.e. zero rows).
FLUSH PRIVILEGES ;
# MySQL returned an empty result set (i.e. zero rows).
#1045 - Access denied for user ''root''@''localhost'' (using password: YES)
GRANT ALL ON *.* TO ''root''@''localhost''
Si el GRANT ALL
no funciona, intente:
- Detener
mysqld
y reiniciarlo con la opción--skip-grant-tables
. - Conéctese al servidor
mysqld
con solo:mysql
(es decir, sin la opción-p
, y es posible que no se requiera un nombre de usuario). Emita los siguientes comandos en el cliente mysql:
UPDATE mysql.user SET Grant_priv=''Y'', Super_priv=''Y'' WHERE User=''root'';
FLUSH PRIVILEGES;
Después de eso, debería poder ejecutar GRANT ALL ON *.* TO ''root''@''localhost'';
y haz que funcione
Si está usando WAMP en su computadora local (versión 5.7.14 de mysql) Paso 1: abra el archivo my.ini Paso 2: elimine el comentario de esta línea ''skip-grant-tables'' eliminando el punto y coma 3: reinicie mysql paso 4 del servidor: iniciar la consola mySQL paso 5:
UPDATE mysql.user SET Grant_priv=''Y'', Super_priv=''Y'' WHERE User=''root'';
FLUSH PRIVILEGES;
Paso 6: problema resuelto !!!!
Si ha eliminado a su usuario root
por error, puede hacer una cosa:
- Detener el servicio de MySQL
- Ejecute
mysqld_safe --skip-grant-tables &
- Escriba
mysql -u root -p
y presione enter. - Ingresa tu contraseña
- En la línea de comando mysql, ingrese:
use mysql;
Luego ejecuta esta consulta:
insert into `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`)
values(''localhost'',''root'','''',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'','''','''','''','''',''0'',''0'',''0'',''0'');
luego reinicia el mysqld
Simplemente inserte o actualice mysql.user
con el valor Y
en cada privilegio de columna.
Lo mismo arriba.
Respuesta completa: http://www.myee.web.id/?p=869
También eliminé privilegios de raíz y base de datos que no se muestran en la consola de mysql cuando era usuario root, así que cambié de usuario por mysql>mysql -u ''userName'' -p;
y contraseña;
UPDATE mysql.user SET Grant_priv=''Y'', Super_priv=''Y'' WHERE User=''root'';
FLUSH PRIVILEGES;
después de este comando, todo muestra la base de datos en la raíz.
Gracias
GRANT ALL ON *.* TO ''user''@''localhost'' with GRANT OPTION;
Simplemente inicie sesión desde la raíz utilizando la contraseña correspondiente, si la hay, y simplemente ejecute el comando anterior para lo que sea que el usuario sea.
Por ejemplo:
GRANT ALL ON *.* TO ''root''@''%'' with GRANT OPTION;