MySQL隐藏了我的例程(存储过程)

时间:2018-03-12 00:07:52

标签: mysql phpmyadmin

在MySQL中创建了几个例程之后,我回到了我的数据库,但是它们丢失了,但仍然显示了名称。

phpMyAdmin Screenshot

它说我可能缺乏编辑它们所需的权限,但事实并非如此。我使用创建它们的帐户登录,这是一个管理员帐户。

为了查看它们是否在information_schema中,我运行了这个:

SELECT routine_definition FROM information_schema.routines WHERE routine_schema = 'databasename';

...但它显示两个空条目。

phpMyAdmin screenshot

我的常规完全消失了吗?创建它们时我做错了吗?

我已经使用MySQL多年了,而且之前没有发生过这种情况。

编辑: 我刚刚打电话给Routines,他们确实工作......这意味着他们会返回数据。我唯一的问题是我无法查看或编辑代码。

1 个答案:

答案 0 :(得分:0)

In Motion Hosting回复了解释。

  

不幸的是,由于cPanel最近的更改,使用MySQL例程并不是共享主机方案正式支持的。虽然可以通过cPanel凭证通过自定义phpMyAdmin安装手动创建它,但cPanel提供的界面将不再用于修改例程。如果您需要支持例程,则需要升级到VPS或更高版本的计划。

根据我的理解,MySQL将例程的安全性设置为“DEFINER”,它通过您的登录识别您。注销并重新登录后,该ID已更改,从而隐藏了您的例行代码。

同样,例程也不会出现在MySQL备份中。