MySQL: SELECT from another server

2019-01-11 07:24发布

问题:

I'm afraid that I already know the answer to my question, but I'll ask it anyway:

When there are two MySQL DB servers, can I access data that is stored on the other server?

In other words: Can I somehow do this:

INSERT INTO table (x, y, z)
   SELECT x, y, x+y
      FROM [otherserver].[database].[table]

Is the answer really as short as "No"?

回答1:

You can set up federated tables in MySQL to accomplish what you're trying to do. There are some limitations.

http://dev.mysql.com/doc/refman/en/federated-storage-engine.html http://dev.mysql.com/doc/refman/en/federated-usagenotes.html



回答2:

CREATE TABLE `remote_table`(
  `foo` VARCHAR(100),
  UNIQUE KEY(`foo`(30))
) ENGINE=FEDERATED CONNECTION='mysql://thedomain.com:3306/remotedbname/remotetablename';

Then query it like any other table with SELECT, UPDATE, INSERT, DELETE.