Mudanças entre as edições de "O erro MySQLSyntaxErrorException: command denied"

De Wiki Integrator do Brasil
Ir para: navegação, pesquisa
(Criou página com 'Este erro é comum em aplicações Java e podem ocorrer dentro das situações informadas abaixo: <br /> 1. O usuário não possui permissão adequada ao banco de dados. Nest...')
 
 
(6 edições intermediárias de um usuário não apresentadas)
Linha 1: Linha 1:
 +
[[File:Banner-wiki-promocoes.gif|center| 700px||border|link=https://www.integrator.com.br/plano-hospedagem-promocionais|Planos promocionais|]]
 +
 +
 +
----
 +
----
 +
 
Este erro é comum em aplicações Java e podem ocorrer dentro das situações informadas abaixo: <br />
 
Este erro é comum em aplicações Java e podem ocorrer dentro das situações informadas abaixo: <br />
  
 
1. O usuário não possui permissão adequada ao banco de dados. Neste caso, veja os seguintes tópicos: <br />
 
1. O usuário não possui permissão adequada ao banco de dados. Neste caso, veja os seguintes tópicos: <br />
* [[Erro_de_Permissão_ou_Privilégio_em_Functions,_Views_e_Procedures| Erro de Permissão ou Privilégio em Functions, Views e Procedures]
+
* [[Erro de Permissão ou Privilégio em Functions, Views e Procedures]]
 
* [[Erro de privilégio no banco de dados MySQL]]
 
* [[Erro de privilégio no banco de dados MySQL]]
  
 
2.  A query em questão foi gerada por assistente de um aplicativo, então, recomendamos analisar a sintaxe  em questão. Como no servidor online, na hospedagem padrão, há uma exigência de prefixo, exige-se uma mudança no fonte do aplicativo. <br />
 
2.  A query em questão foi gerada por assistente de um aplicativo, então, recomendamos analisar a sintaxe  em questão. Como no servidor online, na hospedagem padrão, há uma exigência de prefixo, exige-se uma mudança no fonte do aplicativo. <br />
Muitas vezes está contido o nome do banco de dados, junto a tabela e seu respectivo campo. Por exemplo, o erro é apresentado em relatório JasperReports onde,  no fonte de um .jrxml, vemos a sintaxe contida com o nome do banco de dados que precisa ser removido: <br />
+
Muitas vezes está contido o nome do banco de dados, junto a tabela e seu respectivo campo. Por exemplo, o erro é apresentado em relatório JasperReports onde,  no fonte de um .jrxml, vemos a sintaxe contida com o nome do banco de dados (localmente seria <u>relatorios</u>, mas online <u>int_relatorios</u>) que precisa ser removido, ou modificado. <br />
 +
<pre>
 +
<queryString>
 +
<![CDATA[SELECT relatorios.produtos.`ProdutoID`, relatorios.produtos.`ProdutoNome`, relatorios.produtos.preco FROM produtos]]>
 +
</queryString>
 +
</pre>
 +
 
 +
Editando para a forma correta, o problema desaparece: <br />
 
<pre>
 
<pre>
 
<queryString>
 
<queryString>
<![CDATA[SELECT relatorios.produtos.`ProdutoID`, relatorios.produtos.`ProdutoNome`, relatorios.produtos.preco FROM produtos]]>
+
<![CDATA[SELECT produtos.`ProdutoID`, produtos.`ProdutoNome`, produtos.preco FROM produtos]]>
</queryString>
+
</queryString>
 
</pre>
 
</pre>
  
Linha 17: Linha 30:
 
  select * from Produto
 
  select * from Produto
  
Contorne acrescentando a anotação '''@Table(name = "produto")'''.
+
Para resolver, basta acrescentar em suas entidades a anotação '''@Table(name = "produto")'''.
  
  
 
[[Categoria:TUTORIAIS]]
 
[[Categoria:TUTORIAIS]]
 
[[Categoria:PAINEL_JAVA_INTEGRATOR]]
 
[[Categoria:PAINEL_JAVA_INTEGRATOR]]
 +
[[Categoria:MYSQL]]

Edição atual tal como às 15h36min de 30 de agosto de 2018

Banner-wiki-promocoes.gif




Este erro é comum em aplicações Java e podem ocorrer dentro das situações informadas abaixo:

1. O usuário não possui permissão adequada ao banco de dados. Neste caso, veja os seguintes tópicos:

2. A query em questão foi gerada por assistente de um aplicativo, então, recomendamos analisar a sintaxe em questão. Como no servidor online, na hospedagem padrão, há uma exigência de prefixo, exige-se uma mudança no fonte do aplicativo.
Muitas vezes está contido o nome do banco de dados, junto a tabela e seu respectivo campo. Por exemplo, o erro é apresentado em relatório JasperReports onde, no fonte de um .jrxml, vemos a sintaxe contida com o nome do banco de dados (localmente seria relatorios, mas online int_relatorios) que precisa ser removido, ou modificado.

<queryString>
	<![CDATA[SELECT relatorios.produtos.`ProdutoID`, relatorios.produtos.`ProdutoNome`, relatorios.produtos.preco FROM produtos]]>
</queryString>

Editando para a forma correta, o problema desaparece:

<queryString>
	<![CDATA[SELECT produtos.`ProdutoID`, produtos.`ProdutoNome`, produtos.preco FROM produtos]]>
</queryString>


3. A query é gerada pela JPA ou Hibernate. O MySQL online é sensível a letras maiúsculas e minúsculas. Observe se a query não está com palavras em maiúscula na geração da sintaxe, no nome da tabela, sendo que originalmente, online, é tudo em minúsculo.

select * from Produto

Para resolver, basta acrescentar em suas entidades a anotação @Table(name = "produto").