Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не запускаются хранимые процедуры после запуска сервера с директивой log-bin
 
 автор: ronin80   (23.04.2008 в 10:11)   письмо автору
 
 

Проблема такая: запустил сервер с функцией -log-bin, т.е. теперь все транзакции сохраняются в файл, но теперь не даёт запускать созданные до этого процедуры, т.к. они производят изменения в таблицах. Как исправить данную ситуацию? Для создания процедур было предложено присвоить глобальной переменной --log-bin-trust-routine-creators значение 1, данное действие выполнил и получилось создавать процедуры, но запускать их всё равно не даёт.

может кто знает как действовать?

   
 
 автор: cheops   (23.04.2008 в 10:42)   письмо автору
 
   для: ronin80   (23.04.2008 в 10:11)
 

Что пишет в ответ при запуске хранимой процедуры?

   
 
 автор: ronin80   (23.04.2008 в 12:14)   письмо автору
 
   для: cheops   (23.04.2008 в 10:42)
 

отключил log-bin вроде заработало

теперь возникает вопрос как влияет вообще параметр log-bin на работу с процедурами, необходимо ли использовать параметр DETERMINISTIC или MODIFIES SQL DATA при создании таковой?

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

при создании получается можно ещё использовать переменную --log-bin-trust-routine-creators?

и может ли влиять режим log-bin на созданные ранее процедуры/функции, надо ли их пересоздавать с указанными ранее параметрами?

   
 
 автор: ronin80   (23.04.2008 в 12:17)   письмо автору
 
   для: ronin80   (23.04.2008 в 12:14)
 

основной вопрос теперь как мне сделать так чтобы и архивирование работало и не ругалось на процедуры

PS попытаюсь посмотреть как влияет такой режим на выполнение процедур, на что ругается

   
 
 автор: ronin80   (23.04.2008 в 12:35)   письмо автору
 
   для: ronin80   (23.04.2008 в 12:17)
 

процедуры проверил - работают, наверное был какой-то временный глюк

таким образом режим log-bin не влияет на работу процедур, но создавать удаётся только при присвоении переменной log_bin_trust_routine_creators=1, либо при запуске сервера с данным значением, а что за переменная log_bin_trust_function_creators ? на неё сервер ругается, пишет что такой переменной не найдено, хотя в статье откуда взял информацию она упоминается?

то есть получается только одно ограничение - на создание процедур функций? и надо ли в режиме log-bin при создании указывать один из этих параметров:

{CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}

или сервер сам определит что процедура изменяет данные в БД?

   
 
 автор: ronin80   (24.04.2008 в 07:42)   письмо автору
 
   для: ronin80   (23.04.2008 в 12:35)
 

цитирую текст из книги "... в подлиннике"

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


объясните пожалуйста что значит: небезопасных хранимых процедур ?

   
 
 автор: cheops   (24.04.2008 в 11:51)   письмо автору
 
   для: ronin80   (24.04.2008 в 07:42)
 

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

   
 
 автор: ronin80   (24.04.2008 в 12:56)   письмо автору
 
   для: cheops   (24.04.2008 в 11:51)
 

а информация изменяемая при выполнении процедур запишется в журнал?

   
 
 автор: ronin80   (25.04.2008 в 13:36)   письмо автору
 
   для: ronin80   (24.04.2008 в 12:56)
 

узнал что переменная log_bin_trust_functions_creators поддерживается только с версии 5.1.16

я работаю с версией 5.0.6, т.е. выходит у меня не получится использовать журналирование?

PS при попытке в файл my.ini прописать log_bin_trust_functions_creators=1 сервер комментирует эту строку и пишет неизвестная переменная (то же самое и routine)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования