mysql - 如何使用 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 服务器上,在该服务器上我可以将各种数据子集导入到单个数据库中。
解决方案
你可以通过以下两种方式做到这一点
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"'
推荐阅读
- reactjs - ReactJs:为什么 ref.current 在渲染组件时返回 null?
- python - 如何从 bs4 解析的响应中获取指定的 html 文本?
- spring-cloud-dataflow - Spring Cloud Data Flow java DSL:容器属性
- node.js - 如何在函数组件中使用类组件函数
- javascript - Reactjs - 不要更新组件的某些部分
- android - 在 Android 移动应用中播放直播延迟约 10 到 15 秒
- php - Laravel 8在api请求上返回flock错误
- reactjs - ReactJs 功能组件 - 如何从外部调用函数?
- c# - 来自多个表的 Linq 计数项目
- reactjs - 如何制作传播在 React 功能组件中的 vscode 自动完成道具