DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) federated-use

Info Catalog (mysql.info) federated-description (mysql.info) federated-storage-engine (mysql.info) federated-limitations
 
 14.7.2 How to use `FEDERATED' Tables
 ------------------------------------
 
 The procedure for using `FEDERATED' tables is very simple. Normally,
 you have two servers running, either both on the same host or on
 different hosts. (It is possible for a `FEDERATED' table to use another
 table that is managed by the same server, although there is little
 point in doing so.)
 
 First, you must have a table on the remote server that you want to
 access by using a `FEDERATED' table. Suppose that the remote table is
 in the `federated' database and is defined like this:
 
      CREATE TABLE test_table (
          id     INT(20) NOT NULL AUTO_INCREMENT,
          name   VARCHAR(32) NOT NULL DEFAULT '',
          other  INT(20) NOT NULL DEFAULT '0',
          PRIMARY KEY  (id),
          INDEX name (name),
          INDEX other_key (other)
      )
      ENGINE=MyISAM
      DEFAULT CHARSET=latin1;
 
 The example uses a `MyISAM' table, but the table could use any storage
 engine.
 
 Next, create a `FEDERATED' table on the local server for accessing the
 remote table:
 
      CREATE TABLE federated_table (
          id     INT(20) NOT NULL AUTO_INCREMENT,
          name   VARCHAR(32) NOT NULL DEFAULT '',
          other  INT(20) NOT NULL DEFAULT '0',
          PRIMARY KEY  (id),
          INDEX name (name),
          INDEX other_key (other)
      )
      ENGINE=FEDERATED
      DEFAULT CHARSET=latin1
      CONNECTION='mysql://root@remote_host:9306/federated/test_table';
 
 (Before MySQL 5.0.13, use `COMMENT' rather than `CONNECTION'.)
 
 The structure of this table must be exactly the same as that of the
 remote table, except that the `ENGINE' table option should be
 `FEDERATED' and the `CONNECTION' table option is a connection string
 that indicates to the `FEDERATED' engine how to connect to the remote
 server.
 
 The `FEDERATED' engine creates only the `test_table.frm' file in the
 `federated' database.
 
 The remote host information indicates the remote server to which your
 local server connects, and the database and table information indicates
 which remote table to use as the data source. In this example, the
 remote server is indicated to be running as `remote_host' on port 9306,
 so there must be a MySQL server running on the remote host and listening
 to port 9306.
 
 The general form of the connection string in the `CONNECTION' option is
 as follows:
 
      SCHEME://USER_NAME[:PASSWORD]@HOST_NAME[:PORT_NUM]/DB_NAME/TBL_NAME
 
 Only `mysql' is supported as the SCHEME value at this point; the
 password and port number are optional.
 
 Here are some example connection strings:
 
      CONNECTION='mysql://username:password@hostname:port/database/tablename'
      CONNECTION='mysql://username@hostname/database/tablename'
      CONNECTION='mysql://username:password@hostname/database/tablename'
 
 The use of `CONNECTION' for specifying the connection string is
 non-optimal and is likely to change in future. Keep this in mind for
 applications that use `FEDERATED' tables. Such applications are likely
 to need modification if the format for specifying connection
 information changes.
 
 Because any password given in the connection string is stored as plain
 text, it can be seen by any user who can use `SHOW CREATE TABLE' or
 `SHOW TABLE STATUS' for the `FEDERATED' table, or query the `TABLES'
 table in the `INFORMATION_SCHEMA' database.
 
Info Catalog (mysql.info) federated-description (mysql.info) federated-storage-engine (mysql.info) federated-limitations
automatically generated byinfo2html