Mor*_*o88 22 mysql database data-migration mysql-connector
我想使用代码而不是像"MySQL Migration Toolkit"这样的工具来做到这一点.我知道最简单的方法是打开一个连接(使用MySQL连接器)到DB1并读取其数据.打开与DB2的连接并将数据写入其中.有更好/最简单的方法吗?
Rec*_*rse 20
首先,我假设您无法复制数据/目录,因为如果您正在使用现有的快照/备份/恢复可能就足够了(并将备份/恢复程序测试到讨价还价) .
在这种情况下,如果两个表具有相同的结构通常最快,而具有讽刺意味的最简单的方法是在一端使用SELECT ... INTO OUTFILE ...,在另一端使用LOAD DATA INFILE ....
有关明确的详细信息,请参阅http://dev.mysql.com/doc/refman/5.1/en/load-data.html和.../select.html.
对于琐碎的表格,以下内容将起作用:
SELECT * FROM mytable INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\\\'
LINES TERMINATED BY '\\n' ;
LOAD DATA INFILE '/tmp/mytable.csv' INTO TABLE mytable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\\\'
LINES TERMINATED BY '\\n' ;
Run Code Online (Sandbox Code Playgroud)
我们还使用了FIFO,以避免实际写入磁盘的开销,或者由于某种原因我们确实需要写入磁盘,以通过gzip管道它.
即.
mkfifo /tmp/myfifo
gzip -c /tmp/myfifo > /tmp/mytable.csv.gz &
... SEL
ECT... INTO OUTFILE '/tmp/myfifo' .....
wait
gunzip -c /tmp/mytable.csv.gz > /tmp/myfifo &
... LOAD DATA INFILE /tmp/myfifo .....
wait
Run Code Online (Sandbox Code Playgroud)
基本上,您可以将表数据定向到FIFO,您可以将其压缩,进行压缩,或将其通过网络传输到您的心灵内容.
Wri*_*ken 11
FEDERATED存储引擎?不是最快的一个,但有一次,偶然的,或少量的数据,它会做.假设你在谈论2个服务器.在同一台服务器上有2个数据库,它只是:
INSERT INTO databasename1.tablename SELECT * FROM databasename2.tablename;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37696 次 |
| 最近记录: |