首页 > 解决方案 > 如何使用 Linux 和 MariaDB 将数据导入或导出到另一台服务器

问题描述

我需要在 Linux 服务器上的 MariaDB 数据库上设置一个表,从各种其他 Linux MariaDB 数据库服务器收集数据(在一个表中连接相同类型的数据)。我无法跨服务器获取数据。

我登录到服务器 A 使用 -hB --port=3306 -u -p 连接到服务器 B,我运行我的代码,它运行完美,并为我提供了我需要的数据,唯一的问题是 CSV 文件存储在服务器上B 我从中读取数据,我希望将 CSV 文件存储在服务器 A 上。我使用了“into outfile”然后计划使用“mysqlimport”将我的所有文件从服务器 B、C 和 D 加载到数据库中在服务器 A 上。也许我应该使用 mysqldump 而不是?我的同事使用 BCPOUT 实现了这些结果。

mysql -hB --port=3306 -u -p < $SCRIPTPATH/mysqlcode.sql

SELECT
  *
FROM
  Database.Table
WHERE DATE(DateCreated) = CURDATE() INTO OUTFILE '/data/file.csv' FIELDS TERMINATED BY ',';

我需要将来自众多 Linux-MariaDB 服务器的数据子集获取到 1 个 Linux-mariaDB 服务器上,在该服务器上我可以将各种数据子集导入到单个数据库中。

标签: mysqlmariadb

解决方案


你可以通过以下两种方式做到这一点

mysql -u root -ptest -h hostname --batch -e "select * from db.table where date = now()" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > file_name.csv

或者

mysqldump -u root -ppwd   dbname --tab='/home/user/Documents/db/' --tables stats --no-create-info --where='dates = "2017-12-31"'


推荐阅读