MYSQL-如何将数据插入另一个服务器DB表

MYSQL-如何将数据插入另一个服务器DB表,mysql,database,Mysql,Database,在插入到第一个服务器的表之后,我尝试将数据插入到第二个服务器的DB表中,如下结构所示 第二台服务器: use SecondServerDB; CREATE TABLE user ( `ID` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` smallint(6) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB; 在第二台服务器中创建了表之后,我在第

在插入到第一个服务器的表之后,我尝试将数据插入到第二个服务器的DB表中,如下结构所示

第二台服务器:

use SecondServerDB;

CREATE TABLE user (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `age` smallint(6) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB;
在第二台服务器中创建了表之后,我在第一台服务器中创建了表,如下所示

   DELIMITER $$

    CREATE TRIGGER remote_insert_Testing AFTER INSERT ON remote_user2 FOR EACH ROW
    BEGIN
      INSERT INTO user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
    END $$

DELIMITER ;
INSERT INTO remote_user2 (ID,name, age) VALUES (1,'Name',27);
第一台服务器:

use FirstServerDB;

CREATE TABLE remote_user2 (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `age` smallint(6) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://MysqlUserName:MysqlUserPassword@SecondServer.MyDomain.com:3306/SecondServerDB/user';
在第二个服务器中创建联邦表后,在同一个服务器中创建触发器,如下所示

   DELIMITER $$

    CREATE TRIGGER remote_insert_Testing AFTER INSERT ON remote_user2 FOR EACH ROW
    BEGIN
      INSERT INTO user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
    END $$

DELIMITER ;
INSERT INTO remote_user2 (ID,name, age) VALUES (1,'Name',27);
如果我像下面这样运行insert查询

   DELIMITER $$

    CREATE TRIGGER remote_insert_Testing AFTER INSERT ON remote_user2 FOR EACH ROW
    BEGIN
      INSERT INTO user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
    END $$

DELIMITER ;
INSERT INTO remote_user2 (ID,name, age) VALUES (1,'Name',27);
然后显示,错误代码:1146。表“FirstServerDB.user”不存在

我在哪里犯错


注意:我在谷歌上搜索,发现我正在尝试的是可能的。对于可能的

请尝试在触发器中使用完全限定的表名:

DELIMITER $$

CREATE TRIGGER remote_insert_Testing
AFTER INSERT ON FirstServerDB.remote_user2 FOR EACH ROW
BEGIN
    INSERT INTO SecondServerDB.user (ID,name, age)
    VALUES (NEW.ID, NEW.name, NEW.Age);
END $$
DELIMITER ;
如果不介意通过普通查询移动数据,可以尝试以下操作:

INSERT INTO SecondServerDB.user (ID, name, age)
SELECT ID, name, age
FROM FirstServerDB.remote_user2

我仍然看到SecondServerDB.user不存在。