sql >> Database >  >> RDS >> Mysql

Kopieer een tabel met gegevens van de ene MySQL-server naar de andere

U kunt federatieve tabellen instellen , wat in feite is het koppelen van een tafel op de ene server aan een tafel op een andere. Gebruik dan de federatie om uw gegevensoverdrachten te doen.

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;
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://[email protected]_host:9306/federated/test_table';

Dan kun je het opvragen zoals elke andere tabel.

Er zijn echter een behoorlijk aantal beperkingen waarover u moet lezen inclusief het externe wachtwoord dat in platte tekst wordt opgeslagen. Als dit een tijdelijke opzet was, puur voor een eenmalige kopie, en de server is niet beschikbaar voor het publiek, dan heb je het grootste deel van het daaraan verbonden risico al geminimaliseerd.




  1. Geavanceerde (?) EN / OF-query

  2. Tel vanaf een tafel, maar stop met tellen bij een bepaald aantal

  3. Postgres en indexen op buitenlandse sleutels en primaire sleutels

  4. Slaapstand @SQLInsert en op dubbele sleutel