Пару раз сталкивался с ошибкой при вызове хранимых процедур:
Решение, предлагаемое в тексте исключения — использовать параметр noAccessToProcedureBodies в строке подключения (отключение доступа), но меня интересовал вопрос, как дать доступ к телам процедур.
Характерно, что по тексту вышеприведенной ошибки находится огромное количество ссылок, большинство которых описывает, как правильно прописать параметр в URL подключения.
А решение оказалось очень простым: все процедуры хранятся в таблице `mysql`.`proc`, соответственно надо всего лишь выполнить комманду:
Немного неожиданно, поскольку по привычке думаешь, что GRANT ALL уже все должен был решить.
User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with «noAccessToProcedureBodies=true» to have driver generate parameters that represent INOUT strings irregardless of actual parameter types.
Решение, предлагаемое в тексте исключения — использовать параметр noAccessToProcedureBodies в строке подключения (отключение доступа), но меня интересовал вопрос, как дать доступ к телам процедур.
Характерно, что по тексту вышеприведенной ошибки находится огромное количество ссылок, большинство которых описывает, как правильно прописать параметр в URL подключения.
А решение оказалось очень простым: все процедуры хранятся в таблице `mysql`.`proc`, соответственно надо всего лишь выполнить комманду:
GRANT SELECT ON `mysql`.`proc` to 'myuser'@'myhost';Немного неожиданно, поскольку по привычке думаешь, что GRANT ALL уже все должен был решить.