首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建ALGORITHM=UNDEFINED定义器

创建ALGORITHM=UNDEFINED定义器
EN

Stack Overflow用户
提问于 2013-07-12 02:17:06
回答 5查看 45.4K关注 0票数 16

我从远程服务器备份了一些数据库,当我尝试导入该备份时,我在本地服务器上遇到了问题。我在这一行得到一个错误:

CREATE ALGORITHM=UNDEFINED DEFINER=root@% SQL SECURITY DEFINER VIEW tematics_field AS select....

两台服务器都有mysql 5.5.2x。而用户在这两个服务器上是不同的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-12 02:29:55

您需要将主机名(或本例中的通配符)放在单引号中:

代码语言:javascript
复制
CREATE ALGORITHM=UNDEFINED DEFINER=root@'%' SQL SECURITY DEFINER VIEW tematics_field AS 
select.....
票数 13
EN

Stack Overflow用户

发布于 2013-07-12 02:17:06

我只是试着:

代码语言:javascript
复制
CREATE VIEW tematics_field AS select....

所有的工作都很完美,导入也做得很好。

票数 19
EN

Stack Overflow用户

发布于 2019-05-02 16:56:09

MySql错误:#1227 -访问被拒绝;此操作需要(至少其中一个)超级权限

代码语言:javascript
复制
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `inventory_stock_1` AS SELECT DISTINCT `legacy_stock_status`.`product_id` AS `product_id`,`legacy_stock_status`.`website_id` AS `website_id`,`legacy_stock_status`.`stock_id` AS `stock_id`,`legacy_stock_status`.`qty` AS `quantity`,`legacy_stock_status`.`stock_status` AS `is_salable`,`product`.`sku` AS `sku` FROM (`cataloginventory_stock_status` `legacy_stock_status` JOIN `decg_catalog_product_entity` `product` ON(`legacy_stock_status`.`product_id` = `product`.`entity_id`)) ;

固定解决方案:

问题是您将definer设置为根用户,这不是您当前运行的用户,这就是为什么您需要超级特权。您可以在RDS中创建一个名为root的用户,并使用root来运行该命令,或者只需

代码语言:javascript
复制
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER

更改为:

代码语言:javascript
复制
CREATE ALGORITHM=UNDEFINED DEFINER=CURRENT_USER SQL SECURITY INVOKER

了解有关CURRENT_USER最终SQL查询的更多信息,如下所示

代码语言:javascript
复制
CREATE ALGORITHM=UNDEFINED DEFINER=CURRENT_USER SQL SECURITY INVOKER VIEW `inventory_stock_1` AS SELECT DISTINCT `legacy_stock_status`.`product_id` AS `product_id`,`legacy_stock_status`.`website_id` AS `website_id`,`legacy_stock_status`.`stock_id` AS `stock_id`,`legacy_stock_status`.`qty` AS `quantity`,`legacy_stock_status`.`stock_status` AS `is_salable`,`product`.`sku` AS `sku` FROM (`cataloginventory_stock_status` `legacy_stock_status` JOIN `decg_catalog_product_entity` `product` ON(`legacy_stock_status`.`product_id` = `product`.`entity_id`)) ;

感谢you.From:MazziTorch

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17600564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档