虽然长期MS SQL Server用户,MySQL对我来说是新的。我用PHP和MySQL为慈善机构创建了一个网站。当我在MySQL Workbench中创建存储过程时,我没有使用DEFINER参数,所以它们都被设置为当时登录的帐户,例如mysqluser@xx.xx.xx.xx IP地址是当时我的家庭IP,现在已经改变了。我现在无法编辑存储过程,因为我显然没有相应的权限。这仅仅是如何使用Cpanel来创建MariaDb和用户的问题,还是我可以改变我如何编写存储过程,以便我的IP不再重要?我还担心PHP登录细节可能会以某种方式停止工作。如果您能帮助消除这种困惑,我将不胜感激。
我不确定你目前的情况有什么解决方案,但是回答你的问题
你可以使用:
CREATE DEFINER = 'admin'@'localhost' PROCEDURE account_count()
或
CREATE DEFINER = 'remoteuser'@'%' PROCEDURE some_func()
只要你有远程访问主机,你仍然可以说,例如ssh,然后以'admin'@'localhost'登录mysql。或者不管您的IP地址是什么,都以"remoteuser"身份登录,请注意,如果具有相同名称的用户具有更具体的主机名,则通配符主机将不起作用。此外,需要事先将权限授予这些用户。
对于DHCP,您也可以使用通配符,例如:
CREATE DEFINER = 'user'@'192.168.%' PROCEDURE do_sth()