我正在尝试通过 MySQL 将数据从远程服务器传输到本地主机。
在远程服务器中,我创建了一个数据库HOD
和一个表tab
。
在本地主机中,我创建了数据库“HOD”和一个表“tab”。我还创建了一个存储过程fed_procedure
和联合表“fed_tab”以从远程表中提取数据。联合表“fed_tab”从远程服务器获取数据,但表“tab”仅在我调用存储过程时更新,CALL fed_procedure();
我希望表“tab”每 5 分钟自动更新一次。所以我创建了一个事件计划,每 5 分钟更新一次表“选项卡”。但是当我执行它时,出现错误:用户 'root'@'%' 对数据库 'HOD' 的访问被拒绝。我该怎么做?
下面是我创建的存储过程和事件调度程序。
DELIMITER $$
DROP PROCEDURE IF EXISTS `HOD`.`fed_procedure` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `fed_procedure`()
BEGIN
declare tab_indx integer(11);
set tab_indx = (SELECT tab_ndx FROM tab order by tab_ndx desc limit 1);
insert into tab select * FROM fed_tab where tab_ndx>tab_indx;
END $$
DELIMITER ;
事件调度程序如下
CREATE EVENT fed_procedure ON SCHEDULE EVERY 5 minute
do
CALL fed_procedure()
您可以创建一个事件,每 5 分钟调用一次存储过程。
在这里,我正在使用示例创建执行事件的完整过程。
它在我的机器上成功执行。你的主要问题是root用户的权限。