Добрый день, все, я не могу понять, что делать дальше. Я удаленно импортировал свою базу данных на сервер.
Итак, вот моя процедура, у меня есть определитель [email protected]:
DELIMITER //
CREATE DEFINER='db_hrmis'@'127.0.0.1' PROCEDURE 'proce_give_employee_leave_credits'()
BEGIN
UPDATE inf_employee_leaves lv SET lv.earnings = (lv.leaveMinutesPerMonth + lv.earnings), lv.allowedLeaveInMinutes = ((lv.noOfDays - (CONVERT((lv.earnings/480), DECIMAL(10,2)))) * 480), lv.noOfDays = CONVERT((lv.allowedLeaveInMinutes / 480), DECIMAL(10,2)) WHERE MONTH(lv.lastUpdated) <> MONTH(CURDATE());
END//
DELIMITER ;
поскольку я обращался к нему удаленно, я также создал пользователя базы данных с моего сервера (например, db_hrmis @myipaddress). Проблема заключается в том, чтобы импортировать процедуры, которые изменили определители, и я не могу изменить свою процедуру, и когда я пытаюсь экспортировать ее, mysql dump показывает только как это
DELIMITER //
END//
DELIMITER ;
пустую структуру, я попробовал предоставить разрешения (выполнить, создать процедуру, изменить процедуру), но ничего не работает.
вот скриншот его текущего состояния.
как вы можете видеть, определители не заявляют 127.0.0.1, и у меня есть проблема "У вас нет прав на эту процедуру", если это проблема с привилегиями, какую привилегию я должен предоставить пользователю?
Большое вам спасибо за помощь.
Возможно, это связано с тем, что у пользователя mysql нет привилегий на выполнение этого конкретного sp на вашей_панели.
Не могли бы вы вывести вывод # mysql> show grants for <your user>;
Или вы можете подтвердить это, выполнив процедуру после предоставления полной привилегии для этого конкретного пользователя во всех базах данных.
# mysql> grant all privileges on *.* to 'user'@'host';
# mysql> flush privileges;