Siteground MySQL:从不同IP地址创建过程/视图/函数定义程序时,在没有超级权限的情况下引发错误1227、1044

Siteground MySQL:从不同IP地址创建过程/视图/函数定义程序时,在没有超级权限的情况下引发错误1227、1044,mysql,stored-procedures,shared-hosting,Mysql,Stored Procedures,Shared Hosting,由于我没有静态IP,因此更改公共IP后无法再编辑所有存储过程。我无法更改或查看通过MySQL Workbench/phpMyAdmin在MySQL中创建的存储过程的定义 重现错误的步骤: 通过MySQL Workbench创建了以下存储过程: 通过MySQL工作台进行更改/编辑工作正常 在PhpMyAdmin中灰显的编辑选项: 删除程序 使用定义器通配符IP“%”创建相同的过程 错误:错误1227:访问被拒绝;此操作SQL语句需要(至少一个)超级权限 无论您在哪个软件包上,Sitegr

由于我没有静态IP,因此更改公共IP后无法再编辑所有存储过程。我无法更改或查看通过MySQL Workbench/phpMyAdmin在MySQL中创建的存储过程的定义

重现错误的步骤:

  • 通过MySQL Workbench创建了以下存储过程:
  • 通过MySQL工作台进行更改/编辑工作正常
  • 在PhpMyAdmin中灰显的编辑选项:
  • 删除程序
  • 使用定义器通配符IP“%”创建相同的过程
  • 错误:错误1227:访问被拒绝;此操作SQL语句需要(至少一个)超级权限
  • 无论您在哪个软件包上,Siteground都不允许超级权限。我们和他们有一个云托管计划
经过进一步调查,通过MySQL Workbench创建的所有存储过程(大约100个)的定义符都设置为
DBUser
@
180.10.1.1
(不是实际的IP,假设这是旧IP)

通过以下方式进行验证:

从INFORMATION\u SCHEMA.ROUTINES中选择例程名称、定义者

尝试导出所有存储过程,以便我可以删除并重新创建它。不幸的是,遇到了相同的错误1227

如果没有根访问权限,如何解决此问题

DELIMITER $$
CREATE PROCEDURE `test` ()
BEGIN
  set @id  = 1234;
END$$
DELIMITER $$
CREATE DEFINER `DBUSer`@`%` PROCEDURE `test` ()
BEGIN
  set @id  = 1234;
END$$