Mudanças entre as edições de "O erro MySQLSyntaxErrorException: command denied"
Linha 13: | Linha 13: | ||
</pre> | </pre> | ||
− | + | Editando para a forma correta, o problema desaparece: <br /> | |
<pre> | <pre> | ||
<queryString> | <queryString> | ||
Linha 24: | Linha 24: | ||
select * from Produto | select * from 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]] |
Edição das 04h12min de 16 de março de 2016
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:
- Erro de Permissão ou Privilégio em Functions, Views e Procedures
- 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.
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").