有在不同服務器上的兩個不同的數據庫兩種觀點,我要加入他們的行列,使幾個疑問。
我有什麼選擇?
我該怎麼辦?
加入的觀點在同一個數據庫工作。
SELECT * FROM view1
UNION ALL
SELECT * FROM view2
感謝
有在不同服務器上的兩個不同的數據庫兩種觀點,我要加入他們的行列,使幾個疑問。
我有什麼選擇?
我該怎麼辦?
加入的觀點在同一個數據庫工作。
SELECT * FROM view1
UNION ALL
SELECT * FROM view2
感謝
你可以在MySQL中使用聯合功能。
登錄到MySQL的CLI以root(或具有足夠權限的另一個帳戶)。
類型:show engines
; 你應該看不到任何聯邦引擎在這一點上,像這樣:
mysql> show engines;
+------------+---------+------------------------------------------------------------+--- -----------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+------------------------------------------------------------+--- -----------+------+------------+
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
5 rows in set (0.00 sec)
爲了使盟員引擎,鍵入以下內容:
install plugin federated soname 'ha_federated.so';
不介意,如果你得到ERROR 1125(HY000):功能「聯合」已存在
現在可以行「聯合」安全地添加到/etc/my.cnf文件裏是這樣的:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
federated
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重新啓動mysqld(服務mysqld restart等)
重新啓動後,請回到mysql CLI。
類型'show engines;'
您現在應該看到FEDERATED引擎可用,並且支持爲YES。
mysql> show engines;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| FEDERATED | YES | Federated MySQL storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
6 rows in set (0.00 sec)
重啓MySQL
service mysqld status
service mysqld stop
service mysqld start
在DB1中創建DB1和視圖2廠景,
CREATE table federated_table (
id int not null,
name VARCHAR(32) NOT NULL DEFAULT ''
)
ENGINE=FEDERATED
CONNECTION='mysql://user_name:[email protected]_server_name:3306/db2/view2';
注federated_table和view2必須使用相同的列名稱並鍵入
執行SELECT * FROM db2.federated_table;
執行select * from db1.view1 union all select * FROM db1.federated_table;
參見:http://eves4code.blogspot.in/2015/12/querying-data-by-joining-two-views-in.html
請參閱此鏈接 http://stackoverflow.com/questions/ 5145637 /通過連接查詢數據 - 兩個表中的數據庫在不同的服務器上 – Capslock
@Capslock以下鏈接的表,但我要求fo r views.I已經按照鏈接,但我的代碼不起作用。 –
是否嘗試在mysql中使用聯合存儲? –