trigger gran error mysql mysqldatareader mysql-error-1142

mysql - gran - Error: seleccione el comando denegado al usuario ''<userid>'' @ ''<ip-address>'' para la tabla ''<table-name>''



phpmyadmin error 1142 (12)

seleccione el comando denegado al usuario '''' @ '''' para la tabla ''''

Este problema se genera básicamente después de que la condición de unión sea un nombre de base de datos incorrecto en su consulta de unión. Por lo tanto, verifique su consulta de selección en el nombre de la tabla de unión después de la base de datos.

Luego resuélvelo, por ejemplo, su correcto y correcto

string g = " SELECT `emptable`.`image` , `applyleave`.`id` , `applyleave`.`empid` , `applyleave`.`empname` , `applyleave`.`dateapply` , `applyleave`.`leavename` , `applyleave`.`fromdate` , `applyleave`.`todate` , `applyleave`.`resion` , `applyleave`.`contact` , `applyleave`.`leavestatus` , `applyleave`.`username` , `applyleave`.`noday` FROM `DataEMP_ems`.`applyleave` INNER JOIN `DataEMP_ems`.`emptable` ON ( `applyleave`.`empid` = `emptable`.`empid` ) WHERE ( `applyleave`.`leavestatus` = ''panding'' ) ";

La tabla de unión es imputable y se puede applyleave en la misma base de datos, pero el nombre de la base de datos en línea es diferente y se le da un error en este problema.

En mi sitio web, estoy usando la base de datos MySQL. Estoy usando un servicio web donde hago todas las manipulaciones relacionadas con mi base de datos.

Ahora, en uno de los métodos de ese servicio web, obtengo el siguiente error.

seleccione el comando denegado al usuario '''' @ '''' para la tabla ''''

¿Qué podría estar mal?

A continuación se muestra el código donde obtengo ese error. Intenté la depuración y encontré que falla en la línea

MySqlDataReader result1 = command1.ExecuteReader();

Aquí está mi código:

String addSQL = "Select Max(`TradeID`) from `jsontest`.`tbl_Positions"; MySqlConnection objMyCon = new MySqlConnection(strProvider); objMyCon.Open(); MySqlCommand command = objMyCon.CreateCommand(); command.CommandText = addSQL; MySqlDataReader result = command.ExecuteReader(); //int j = command.ExecuteNonQuery(); while (result.Read()) { MaxTradeID = Convert.ToInt32(result[0]); } objMyCon.Close(); for (i = 1; i <= MaxTradeID; i++) { String newSQL = "Select `Strike`,`LongShort`,`Current`,`TPLevel`,`SLLevel` from `json`.`tbl_Position` where `TradeID` = ''" + i + "''"; MySqlConnection objMyCon1 = new MySqlConnection(strProvider); objMyCon1.Open(); MySqlCommand command1 = objMyCon1.CreateCommand(); command1.CommandText = newSQL; MySqlDataReader result1 = command1.ExecuteReader(); objMyCon2.Close();


Al igual que en otras respuestas, había perdido la pregunta.

Tuve -

SELECT t.id FROM t.table LEFT JOIN table2 AS t2 ON t.id = t2.table_id

Debería haber sido

SELECT t.id FROM table AS t LEFT JOIN table2 AS t2 ON t.id = t2.table_id

Mysql estaba tratando de encontrar una base de datos llamada t para la cual el usuario no tenía permiso.



El problema es muy probablemente entre a. y un _. Di en mi consulta pongo

SELECCIONA ..... DE LA UBICACIÓN.PT

en lugar de

SELECCIONA ..... DESDE LOCATION_PT

Así que creo que MySQL pensaría que LOCATION era un nombre de base de datos y le estaba dando un error de privilegio de acceso.


El usuario de la base de datos no tiene permiso para realizar una consulta de selección.

puede otorgar el permiso al usuario si tiene acceso de root a mysql

http://dev.mysql.com/doc/refman/5.1/en/grant.html

Su segunda consulta es en una base de datos diferente en una tabla diferente.

String newSQL = "Select `Strike`,`LongShort`,`Current`,`TPLevel`,`SLLevel` from `json`.`tbl_Position` where `TradeID` = ''" + i + "''";

Y el usuario con el que se está conectando no tiene permiso para acceder a los datos de esta base de datos o de esta tabla en particular.

¿Has considerado esto?


Este problema me ocurrió porque tenía el hibernate.default_schema configurado en una base de datos diferente a la del DataSource.

Siendo estricto con mis permisos de usuario de mysql, cuando hibernate intentó consultar una tabla, consultó la de la base de datos hibernate.default_schema para la cual el usuario no tenía permisos.

Es lamentable que mysql no especifique correctamente la base de datos en este mensaje de error, ya que eso habría aclarado las cosas de inmediato.


Estoy seguro de que el problema del póster original se resolvió hace mucho tiempo. Sin embargo, tuve este mismo problema, así que pensé que explicaría qué me estaba causando este problema.

Estaba haciendo una consulta de unión con dos tablas: ''foo'' y ''foo_bar''. Sin embargo, en mi declaración SQL, tuve un error tipográfico: ''foo.bar''

Entonces, en lugar de decirme que la tabla ''foo.bar'' no existe, el mensaje de error indica que el comando fue denegado, como si no tuviera permisos.

Espero que esto ayude a alguien.


Recibí exactamente el mismo mensaje de error al realizar una exportación de la base de datos a través de Sequel Pro en un mac. Yo era el usuario root, así que sabía que no eran permisos. Luego lo probé con mysqldump y obtuve un mensaje de error diferente: Error: 1449: el usuario especificado como definidor (''joey''@''127.0.0.1'') no existe cuando se usan las TABLAS DE BLOQUEO

Ahh, había restaurado esta base de datos desde una copia de seguridad en el sitio de desarrollo y no había creado ese usuario en esta máquina. "conceder todo en . a ''joey''@''127.0.0.1'' identificado por ''joeypass'';" hizo el truco.

hth


Un poco tarde para la fiesta pero, si tiene acceso de root, puede hacer lo siguiente directamente:

Inicie sesión en su mysql como root,

$ mysql -u root -p

Mostrar bases de datos;

mysql>SHOW DATABASES;

Seleccione la base de datos mysql, que es donde se encuentra toda la información de privilegios

mysql>USE mysql;

Mostrar tablas.

mysql>SHOW TABLES;

La tabla relativa a los privilegios para su caso es ''db'', así que veamos qué columnas tiene:

mysql>DESC db;

Para enumerar los privilegios de los usuarios, escriba el siguiente comando, por ejemplo:

mysql>SELECT user, host, db, Select_priv, Insert_priv, Update_priv, Delete_priv FROM db ORDER BY user, db;

Si no puede encontrar a ese usuario o si ve que ese usuario tiene una ''N'' en la columna Select_priv, entonces debe INSERTAR o ACTUALIZAR en consecuencia:

INSERTAR:

INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv) VALUES (''localhost'',''DBname'',''UserName'',''Y'' ,''N'',''N'',''N'');

ACTUALIZAR:

UPDATE db SET Select_priv = ''Y'' WHERE User = ''UserName'' AND Db = ''DBname'' AND Host=''localhost'';

Finalmente, escriba el siguiente comando:

mysql>FLUSH PRIVILEGES;

Chao


Yo tuve el mismo problema. Estaba muy frustrado con eso. Tal vez esto no es responder a la pregunta, pero solo quiero compartir mi experiencia de error, y puede que haya otros que hayan sufrido como yo. Evidentemente fue solo mi baja precisión.

Tuve esto:

SELECT t_comment.username,a.email FROM t_comment LEFT JOIN ( SELECT username,email FROM t_un ) a ON t_comment.username,a.email

que se supone que es así:

SELECT t_comment.username,a.email FROM t_comment LEFT JOIN ( SELECT username,email FROM t_un ) a ON t_comment.username=a.username

Entonces mi problema se resolvió ese día, había tenido problemas en dos horas, solo por este problema.


Yo tuve el mismo problema. Esto está relacionado con la hibernación. Cambié la base de datos de desarrollo a producción en hibernate.cfg.xml pero había atributos de catálogo en otros archivos hbm.xml con el nombre antiguo de la base de datos y estaba causando el problema.

En lugar de decir el nombre incorrecto de la base de datos, mostró un error de Permiso denegado.

Así que asegúrese de cambiar el nombre de la base de datos en todas partes o simplemente elimine el atributo del catálogo


si está trabajando desde una aplicación de Windows, esto me funcionó "server = localhost; user id = dbuser; password = password; database = dbname; Use Procedure Bodies = false;"

simplemente agregue el "Use Procedure Bodies = false" al final de su cadena de conexión.