使用选项--single-transaction将MYSQLDUMP转换为CSV文件

时间:2014-02-11 10:31:06

标签: mysql mysqldump

我的数据库中有一个非常大的表,我想备份并复制到另一个从服务器。

我认为最好的方法是将该表的数据导出到csv文件,并通过命令sqlimport将其导入从服务器(它比mysql运行得快)

所以我的问题是如何在数据库运行时将表的数据导出到csv文件? 是否可以在使用mysqldump时激活选项--single-transaction?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

以下是我如何转储表并导出到csv:

的示例
select * from product where datecreated between '2013-08-01' and '2013-11-11' order by datecreated desc     INTO OUTFILE '/tmp/xmas2.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

然后导航到您的tmp目录并打开csv。

Volterony

答案 1 :(得分:0)

在从属主机上创建表。

从奴隶服务器上的shell:

#nohup mysqldump -h“主服务器的IP或主机”-uuser -p“DB_NAME”“TABLE_NAME”| mysql -user = user -password = password“name_of_your_database”&

如果您正在使用Master和Slave复制进行捕获。

1.-将生产服务器配置为主服务器

A)在[mysqld]部分编辑/etc/mysql/my.cnf:

服务器ID = 1

binlog-format = mixed

登录斌= MySQL的槽

DATADIR =的/ var / lib中/ MySQL的

的innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

B)重启服务器

C)CREATE USER replicant @ slavehost / ip:port;

授予复制权限复制@ slavehost / ip:端口IDENTIFIED BY'pass';

2.-将Mysql数据库备份到backupserver中。用binlog创建备份文件 位置。

#nohup mysqldump -uroot -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data = 2 -A> dump_DBNAME .sql

3.-保存MASTER_LOG_FILE和MASTER_LOG_POS

#head dump_DBNAME .sql | grep“MASTER_LOG_FILE”> MASTER_LOG_FILE_DBNAME .sql

#head dump_DBNAME .sql | grep“MASTER_LOG_POS”> MASTER_LOG_POS_DBNAME .sql

4.配置从属服务器

编辑/etc/mysql/my.cnf

server-id = 10

binlog-format = mixed

log_bin = mysql-bin

relay-log = mysql-relay-bin

log-slave-updates = 1

只读= 1

5.-将备份恢复到从属服务器:

Otion 1:压缩de dump文件gzip dump_DBNAME .sql并使用FTP传输或作为电子邮件发送。

然后从从属服务器恢复备份

#gunzip dump_DBNAME .sql.gz

#mysqldump -hORIGINALHOST -uUSERNAME -p< dump_DBNAME .sql

选项2:直接从主服务器备份到从服务器

#nohup mysql -mysqldump -hslavehost -uUSERNAME -p dump_DBNAME .sql< dump_DBNAME .sql&

6.配置从属服务器

编辑/etc/mysql/my.cnf

server-id = 10

binlog-format = mixed

log_bin = mysql-bin

relay-log = mysql-relay-bin

log-slave-updates = 1

只读= 1

启动从属服务器

CHANGE MASTER TO MASTER_HOST ='master-server-ip',MASTER_USER ='replicant',MASTER_PASSWORD ='slave-server-password',MASTER_LOG_FILE ='value log file',MASTER_LOG_POS ='value log pos';

10.-启动并查看从属状态

START SLAVE;

显示失败状态\ G

此时我们在Slave Server中有一份原始服务器