Mysql

MySQL - 在另一台伺服器上執行 SELECT 語句而不定義表結構

  • February 5, 2022

在 MySQL 中,只要我在本地定義了相同的表結構,我就可以使用聯合表查詢另一台伺服器上的資訊。

然而,在 MS SQL Server 中,我可以針對連結伺服器執行任何 SQL 語句。是否可以在 MySQL 中做同樣的事情?

“連結伺服器”連接與 MySQL 客戶端定義的任何其他連接有何不同?

然而,在 MS SQL Server 中,我可以針對連結伺服器執行任何 SQL 語句。是否可以在 MySQL 中做同樣的事情?

也許我錯過了一些東西,但是是的,只需建立一個連接。

mysql -u <user> -p <password> -D <database> -H 127.0.0.1

import MySQLdb
db = MySQLdb.connect(host="localhost", user="<user>", passwd="<password>", db="<database>")

您甚至可以使用 SSH 設置反向隧道。

mysql -u <user> -p <password> -D <database> -H 127.0.0.1 -P 33061

除此之外,FEDERATED桌子是壁櫥裡的東西。

我肯定錯過了什麼。

TL; 博士;不,你不能。

如果不使用 FEDERATED,就不能對遠端伺服器表執行任意 SQL。看到這個回复

雖然,我沒有看到在本地定義表的問題,特別是如果你想在生產中使用它。事先閱讀 FEDERATED 引擎的限制

如果涉及多個表,請使用指向本範例CREATE SERVER中指定的“伺服器/表”的then子句。使用它,您可以使在本地創建表的過程更容易一些。此外,您可以一次創建一個包含您需要的所有表的平面 SQL 文件,然後使用添加的內容維護該文件。不是最舒服,卻是最有條理的方式。CONNECTION

引用自:https://dba.stackexchange.com/questions/37448