Pregunta

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

Ahora En uno de los métodos de ese servicio web, me sale el siguiente error.

comando de selección negado al usuario '' @ '' para la tabla ''

¿Qué podría estar mal?

A continuación se muestra el código donde consigo ese error. Traté de 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();
¿Fue útil?

Solución

base de datos de usuario no tiene permiso para hacer consulta de selección.

Puede conceder el permiso al usuario si tiene acceso root para MySQL

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

Su segunda consulta es diferente de base de datos en diferentes mesa.

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

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

Tenga en cuenta que esta cosa?

Otros consejos

Estoy seguro de que la edición de su creador original hace tiempo que se ha resuelto. Sin embargo, he tenido este mismo problema, así que pensé que le explicaba lo que estaba causando este problema para mí.

Me estaba haciendo una consulta de unión con dos mesas - 'foo' y 'foo_bar'. Sin embargo, en mi instrucción SQL, que tenía un error tipográfico: 'foo.bar'

Así que, en vez de decirme que la tabla 'foo.bar' no existe, el mensaje de error indica que el comando se ha negado -. Como si yo no tengo permisos

Espero que esto ayude a alguien.

comando de selección negado al usuario '' @ '' para la tabla ''

Este problema es básicamente una condición generada después de unirse a la base de datos son el nombre equivocado en su consulta de unión. Así que por favor marque la consulta de selección en el nombre de la tabla después de unirse a la base de datos.

A continuación resolverlo por ejemplo sus ans correctas mercancías

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 applyleave en la misma base de datos, pero el nombre de base de datos en línea es diversa a continuación, dado error en este problema.

Este problema me pasó porque tenía el conjunto hibernate.default_schema a una base de datos diferente a la que en el origen de datos.

Al ser estricta en mis permisos de usuario de MySQL, cuando se trató de hibernación para consultar una tabla que cuestionó el que está en la base de datos hibernate.default_schema para los que el usuario no tenía permisos.

Su desafortunado que mysql no especifica correctamente la base de datos en este mensaje de error, ya que eso hubiera aclarado las cosas de inmediato.

Yo tenía exactamente el mismo mensaje de error haciendo 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 era permisos. Luego probé con mysqldump y recibido un mensaje de error diferente: Got error: 1449: El usuario especificado como un definidor ( 'joey'@'127.0.0.1') no existe cuando se utiliza LOCK TABLES

Ahh, me había restaurado esta base de datos desde una copia de seguridad en el sitio dev y no había creado ese usuario en esta máquina. "Conceda a todos en a 'joey'@'127.0.0.1' identificado por 'joeypass';.". Resolvieron el problema

hth

si está trabajando desde una aplicación de formas de las ventanas esto funcionó para mí "Server = localhost; ID de usuario = dbuser; password = contraseña; base de datos = dbname; Cuerpos utilizar el procedimiento = false;"

sólo tiene que añadir los "Cuerpos utilizar el procedimiento = false" al final de la cadena de conexión.

El problema es más probable que entre a. y una _. Por ejemplo en mi consulta me puso

SELECT ..... DE LOCATION.PT

en lugar de

SELECT ..... DE LOCATION_PT

Así que creo que MySQL pensaría UBICACIÓN como un nombre de base de datos y el acceso estaba dando error de privilegio.

Yo tenía el mismo problema. Esto se relaciona con hibernación. He cambiado la base de datos de dev para la producción en hibernate.cfg.xml pero había Catálogo de atributo en otros archivos hbm.xml con el antiguo nombre de la base y que estaba causando el problema.

En lugar de decirle a nombre de la base de datos incorrectos, se mostró de error de permiso denegado.

Así que asegúrese de cambiar el nombre de la base de todo el mundo o simplemente quitar el atributo de catálogo

Yo tenía el mismo problema. Me fue muy frustrante con él. Tal vez esto no responde a la pregunta, pero sólo quiero compartir mi experiencia de error, y puede haber otros que sufrieron como yo. Evidentemente era sólo de mi baja precisión.

Yo tenía 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 como sigue:

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

A continuación, mi problema se resolvió en ese día, había estado tuvo problemas en dos horas, sólo para este problema.

Un poco tarde a la fiesta, pero, en caso de tener acceso a la raíz, puede hacer lo siguiente directamente:

Entre 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 privilegios

mysql>USE mysql;

Mostrar las tablas.

mysql>SHOW TABLES;

El cuadro relativo a los privilegios para su caso es 'db', así que vamos a ver lo que tiene columnas:

mysql>DESC db;

Con el fin de enumerar los privilegios de 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 que el usuario o si ves que ese usuario tiene una 'N' en la columna de la SELECT_priv, entonces usted tiene que INSERT o UPDATE en consecuencia:

INSERT:

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

ACTUALIZACIÓN:

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

Por último, escriba el comando siguiente:

mysql>FLUSH PRIVILEGES;

Ciao.

Al igual que en otras respuestas que tenía la señorita tecleó la consulta.

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 denominada T que el usuario no tiene permiso para.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top