Что может быть причиной запрещенной команды: ПОКАЗЫВАТЬ ПРЕДУПРЕЖДЕНИЯ MySQL из SpringJDBC

#java #mysql #spring-jdbc #paas

#java #mysql #spring-jdbc #paas

Вопрос:

Недавно я создал Java-приложение на appengine Paas (название jd-app.com ). Но очень общее приложение SpringJDBC не запустилось бы, потому что оно показывает исключение для простого запроса типа «выбрать * от пользователя» для MySQL. Файлы из http://www.beingjavaguys.com

Очень разочарован после нескольких дней попыток, поэтому я добавляю сюда некоторый код и конфигурацию, надеясь, что кто-то со знаниями или подобным опытом сможет помочь.

Код:

UserDaoImpl.java

 public List<User> getUserList() {
    List<User> userList = new ArrayList<User>();
    String sql = "select * from user";
    userList = jdbcTemplate.query(sql, new UserRowMapper());
  

spring-servlet.xml

 <bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://10.0.16.16:4066/databasenamehidden" />
    <property name="username" value="xxxxx" />
    <property name="password" value="yyyyyy" />
</bean>
  

Исключение:

Статус HTTP 500 — Сбой обработки запроса; вложенным исключением является org.springframework.jdbc.UncategorizedSQLException: StatementCallback; некатегоризированное исключение SQLException для SQL [выберите * из wp_users]; состояние SQL [HY000]; код ошибки [3013]; Запрещенная команда: ПОКАЗЫВАТЬ ПРЕДУПРЕЖДЕНИЯ; вложенным исключением является java.sql.SQLException: Запрещенная команда: ПОКАЗЫВАТЬ ПРЕДУПРЕЖДЕНИЯ

Основная причина

… org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:413) org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:437) com.beingjavaguys.dao.UserDaoImpl.getUserList(UserDaoImpl.java:63)

Обсуждение

На том же Paas я загрузил приложение WordPress, которое может обращаться к MySQL и работает отлично. Но если я настрою эту базу данных в spring-servlet.xml и выберите * из wp_users, тогда я также увижу это исключение из приложения SpringJDBC.

Я попытался изменить этот sql-запрос на другой оператор, и я всегда получаю одни и те же исключения. Итак, что может быть причиной этого? Я могу загрузить больше кода по запросу.

Комментарии:

1. Попробуйте отключить предупреждения в вашей базе данных SET GLOBAL LOG_WARNINGS = 0 или подавить предупреждения с помощью командной строки mysql nowarning

2. Нихил, есть ли способ отключить предупреждение со стороны Java?

Ответ №1:

Как упоминалось Нихилом, ошибка связана с запрещенной командой, и это ПОКАЗЫВАЕТ ПРЕДУПРЕЖДЕНИЯ.

Возможно, ваш Paas не разрешает ПОКАЗЫВАТЬ ПРЕДУПРЕЖДЕНИЯ?