usuarios - usuario root mysql
comando de actualización es denegado para el usuario (9)
el comando my sql es un comando de ACTUALIZACIÓN denegado al usuario ''prueba'' @ ''localhost'' para la tabla ''contenido''
¿Por qué está pasando esto? ¿Y cómo prevenirlo? ¿O alguna solución para esto?
Está sucediendo por lo que dice que está sucediendo: la test
usuario no tiene permisos de actualización en el content
tabla. Algo como esto debería otorgar al usuario el permiso requerido:
GRANT UPDATE ON database.content TO test@''localhost'' IDENTIFIED BY ''password'';
* La contraseña de arriba es solo un marcador de posición. Deberías usar el real.
He estado usando este sitio de alojamiento gratuito para desarrollo y pruebas.
No pude usar un comando UPDATE
MySQL para cambiar los valores de la base de datos, aunque se supone que el usuario tiene permiso para usar todos los comandos de cPanel.
Entonces, he probado lo mismo con un usuario predeterminado, todavía no funciona. Sin embargo, funciona bien en mi sistema.
El error de MySQL es
UPDATE command denied to user ''test''@''localhost'' for table ''content''
Otros comandos están funcionando bien.
¿Por qué está pasando esto? ¿Y cómo se puede prevenir? ¿O alguna solución para esto?
Y estoy muy seguro de que los usuarios tienen permiso para usar el comando UPDATE
porque puedo usar phpMyAdmin con el mismo usuario y modificar los campos de MySQL.
No entiendo por qué algunos comandos MySQL de PHP son denegados para un usuario que recibió todos los privilegios y puede hacer todo a través de phpMyAdmin. Dado ese script, phpMyAdmin y el host SQL están en el mismo servidor.
A veces es un problema que distingue entre mayúsculas y minúsculas.
MySQL también dice acceso denegado incluso si la tabla no está disponible. Por favor, asegúrese de que no tenga problemas con las mayúsculas.
Como todos los demás dijeron, es cuestión de permiso. Estoy seguro de que probablemente lo comprobó, pero por si acaso. Después de iniciar sesión en phpmyadmin, ejecute lo siguiente:
SELECT USER();
Eso debería escupir ''test'' @ ''localhost'' como se indica en todos los comentarios anteriores
Entonces corre
SHOW GRANTS FOR ''test''@''localhost''
Eso debería darte todos los privilegios para ese usuario. Cuando obtenga resultados, seleccione ''Opciones'', Texto completo y haga clic en ir para obtener el texto completo.
Asegúrese de que los permisos en la salida tengan algo así:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `your_database`.* TO ''test''@''localhost''
Es posible que no pueda obtener GRANT ALL en algunas configuraciones de alojamiento, pero siempre que tenga INSERTAR, ACTUALIZAR, BORRAR, definitivamente debería poder actualizar los datos
Con mysql puedes hacer SELECT * mysql.user
Mire los privilegios y luego actualice los que desee. Me gusta más personalmente y luego uso los comandos anteriores porque puedo ver todas mis opciones disponibles en esa tabla.
UPDATE mysql.user
SET Insert_priv = ''Y'',
Update_priv = ''Y''
WHERE user.Host = ''localhost'' AND user.User = ''test'';
Después de actualizar los privilegios noté que tendría que reiniciar el servidor mysql para que el cliente los vea:
/etc/init.d/mysql restart
Entonces funcionaria bien
Para todos los que han intentado responder a esta pregunta aquí es mi sincero agradecimiento. He encontrado el problema y la solución.
mi consulta SQL es así
UPDATE `dblayer`.`test` SET `title` = ''hello a'' WHERE `test`.`id` =1;
que obtuve de phpmyadmin y funciona perfectamente en mi sistema. Pero cuando trabajo en los servidores, no funciona y dice que el comando denegado puede ser porque
`dblayer`.`test`
Estoy intentando seleccionar la tabla globalmente (o algo así, no estoy seguro) pero si mi consulta SQL es
UPDATE `test` SET `title` = ''hello a'' WHERE `test`.`id` =1;
también funciona en mi servidor
Proporcione el acceso completo al usuario de prueba con ip como localhost. Verifique la tabla de usuarios de mysql db.
Inicie sesión como root y entre en la base de datos mysql y luego en la tabla de usuarios. Encontrará los privilegios actuales de su usuario de prueba.
Su usuario no tiene los permisos adecuados. Debes darle acceso al comando ACTUALIZAR, así:
GRANT UPDATE ON database.* TO test@''localhost'' IDENTIFIED BY ''password'';
Si está utilizando una herramienta gráfica para administrar la base de datos, por ejemplo, PHPMyAdmin o SQLYog, etc., debería poder usar esas herramientas para habilitar estos permisos también.
Tuve el mismo problema, el permiso era correcto, pero funcionaba en algunos entornos y no en otros. Estaba usando un nombre de tabla como
scheme.TABLE_NAME .
Sin cambiar el permiso pero usando solo
nombre de la tabla
Trabajado en todos los ambientes.
Un error de UPDATE command denied
en algunos hosts web puede ser el resultado de alcanzar el límite de espacio de la base de datos MySQL.