Is `definer` required when creating a stored procedure?

[EDIT: updated ref page]

You can specify execution privileges by adding the following statement in the procedure body (after declaration):

SQL SECURITY INVOKER

Example:

CREATE DEFINER=`root`@`localhost` PROCEDURE `p_add_user`()
SQL SECURITY INVOKER
(...)

Doing so, the actual invoker privileges are applied and the DEFINER part is omitted (even when it is auto-added during schema import). Full reference here: https://dev.mysql.com/doc/refman/5.7/en/stored-objects-security.html


As stated in MySQL documentation here

CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body

So, the DEFINER part is not mandatory, just CREATE PROCEDURE should work.