php - 通过 Bash 的 Mysql View 转储

标签 php mysql bash

我不知道这样做是否正确,但情况是这样的。我们在多个位置有多个服务器,每个服务器上都有一个 mysql 数据库。每个数据库结构完全相同。目标是从每个数据库中获取一个或两个表到一个位置。

我不想在一堆不同的服务器上运行一堆 crons。我想在一台服务器上运行所有操作,即统一数据库所在的服务器。

因此使用 ssh 和 mysqldump 通过 bash 转储表很容易。这里的挑战是我需要的数据不在表中,而是在 View 中。因此获取数据需要执行 mysql -e 而不是 mysqldump。

但此方法将数据作为数据转储到文件中,而不是作为可导入的 .sql 文件。

关于上述内容的任何指导和想法都会很棒。

谢谢

更新:

好的,目标是从合并服务器远程运行上述命令并在本地获取文件,然后该过程可以将数据从 View 导入到与 View 具有相同结构的普通表中。

最佳答案

您可以使用 SELECT * INTO OUTFILE 转储 View 中的数据。例如

## Exporting data
SELECT * INTO OUTFILE '/tmp/my_out.text' 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 
FROM m_view;

## Creating migration table
CREATE TABLE m_m_test LIKE migrate_table;

## Loading data from file
LOAD DATA INFILE '/tmp/my_out.text' INTO TABLE m_m_test 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';

来源:https://www.pythian.com/blog/can-just-dump-data-view-using-mysqldump/

关于php - 通过 Bash 的 Mysql View 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957755/

相关文章:

linux - 在 bash 中以 dd/mm/yyyy 格式计算到特定日期的总天数

bash - ffmpeg 命令在 python 中使用时出错

php - paypal验证后不发送电子邮件

php - Laravel 是否具有一对零或一的 Eloquent 关系?

php - Laravel Mysql DB 加入 2 个多态父类

c# - 通过 C# Windows 窗体程序连接 Raspberry PI 2 上的 MySql 数据库

php - AWS 上的 Cron(或一般的分布式系统)

php - 查找字符串中的文本并向其中添加其他文本

mysql - 为什么列表大小显示为零?

bash - 如何在Docker Compose中有条件地运行命令