1. 程式人生 > >【MySQL】跨伺服器訪問資料(Windows版)

【MySQL】跨伺服器訪問資料(Windows版)

1. 簡介

  mysql 提供了一個類似Oracle中的資料庫連結(DBLINK)功能的儲存引擎–FEDERATED。當我們建立一個以FEDERATED為儲存引擎的表時,伺服器在資料庫目錄只建立一個表定義檔案。檔案由表的名字開始,並有一個frm副檔名。無其它檔案被建立,因為實際的資料在一個遠端資料庫上。這不同於為本地表工作的儲存引擎的方式。
  對本地的Federated儲存表操作增刪改,實際上這些命令都被髮到主伺服器上的資料庫執行,本地的Federated儲存表會對映最新的遠端資料;

2. 安裝Federated

1) 進入cmd命令列下, 切換到mysql安裝資料夾的bin目錄

mysql -uroot -p

輸入密碼後進行mysql;
2) 檢視mysql是否啟動federated支援;如果為yes就是已啟用,不用再配置其他東西,可直接建立federate儲存表;

3)修改my.ini檔案
  強調不是my-default.ini檔案;my.ini是在mysql data資料夾下(不是在mysql install資料夾下);

my.ini位置

  方法2,cmd下查詢my.ini

show variables like 'datadir'

  然後,在檔案中只需新增一個單詞,注意位置;

4)重啟mysql, show engines; 會發現federated那一行是YES。

3. 建立federated儲存表

3.1 瞭解federated儲存表

3.1.1 FEDERATED儲存引擎的侷限性

  • FEDERATED表指向的遠端表在你通過FEDERATED表訪問它之前必須存在。
  • 一個FEDERATED表指向另一個FEDERATED表是可能的,但是你必須小心不要建立一個迴圈。
  • 沒有對事務的支援。
  • 如果遠端表已經改變,對FEDERATED引擎而言是沒有辦法知道的。這個的原因是因為這個表必須象資料檔案一樣工作,除了資料庫其它任何都不會被寫入。如果有任何對遠端資料庫的改變,本地表中資料的完整性可能會被破壞。
  • FEDERATED儲存引擎支援SELECT, INSERT, UPDATE, DELETE和索引。它不支援ALTER TABLE, DROP TABLE或任何其它的資料定義語言語句。當前的實現不使用預先準備好的語句。
  • 執行使用SELECT, INSERT, UPDATE和DELETE,但不用HANDLER。
  • FEDERATED表不能對查詢快取不起作用。
  • 這些限制中的一些在FEDERATED處理機的將來版本可能被消除。

3.2 遠端伺服器上的mysql資料庫結構

demo

DROP TABLE IF EXISTS `manage_number`;
CREATE TABLE `manage_number` (
  `increment_id` int(11) NOT NULL AUTO_INCREMENT,
  `attend_date` varchar(255) DEFAULT NULL,
  `group_id` int(11) DEFAULT NULL,
  `participant_num` int(11) DEFAULT NULL,
  `student_id` int(11) DEFAULT NULL,
  `subject` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`increment_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

3.3 本地federated儲存表

demo

CREATE TABLE `manage_number` (
  `increment_id` int(11) NOT NULL AUTO_INCREMENT,
  `attend_date` varchar(255) DEFAULT NULL,
  `group_id` int(11) DEFAULT NULL,
  `participant_num` int(11) DEFAULT NULL,
  `student_id` int(11) DEFAULT NULL,
  `subject` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`increment_id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 
CONNECTION='mysql://root:[email protected]:3306/exammanage/manage_firnumber';

加上MySQL的授權,允許別人看,但不能對主資料表進行操作,可以

> grant select on discuz.* to [email protected]'123.123.123.123' identified by '123456';

  上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個使用者,允許 ted 使用者在 123.123.123.123 這個 IP 進行遠端登陸,並設定 ted 使用者的密碼為 123456 。
  All PRIVILEGES 表示賦予所有的許可權給指定使用者,這裡也可以替換為賦予某一具體的許可權,例如:select,insert,update,delete,create,drop 等,具體許可權間用“,”半形逗號分隔。

相關推薦

MySQL伺服器訪問資料Windows

1. 簡介   mysql 提供了一個類似Oracle中的資料庫連結(DBLINK)功能的儲存引擎–FEDERATED。當我們建立一個以FEDERATED為儲存引擎的表時,伺服器在資料庫目錄只建立一個表定義檔案。檔案由表的名字開始,並有一個frm副檔名。無其它

Mysql求兩個表查詢結果的差集

求兩個查詢結果的差集,Mysql直接提供了關鍵字not in,但是not in的效率極其低下,出現例如求一個上千查詢結果在上萬查詢結果的差集,那麼使用not in來查詢的查詢速度極其緩慢,這是必須使用左連結的方式求查詢。 先從簡單的說起,比如在表blog的id情況是這樣的: 在表usert

珍藏 2012Android開發熱門資料110個

在移動開發如火如荼的今天,Android開發市場廣闊,是目前市場佔有率最高的智慧手機作業系統。這個文件裡整理110個優質的Android開發資料,網上的資料眾多,參差不齊,然而這批資料卻是經過精心整理的,下載量高,好評眾多。附件較多,無法將附件一一分享給大家,只能提供資料地

題解平面最近點對加強

double clas .org ace gpo bits scanf 簡單 name 洛谷P1429 很久以前就見過並想做的一道題…… 但大概是那個時候太蒻竟然一直不敢做呢,想想時間真的過得好快,從寫‘Hello World’到如今,其實也不過是短短的一個學期呀。 這道題

前端jQuery DataTables 使用手冊精簡 前端jQuery DataTables 使用手冊精簡

【前端】jQuery DataTables 使用手冊(精簡版) 一、常用屬性 //把公共的設定項都放在這裡,就不需要每個頁面都設定一遍了,放在jQuery物件上是為了避免汙染全域性變數window.dataTablesSettings = { processing : false,//是否顯

mysql 通過federated引擎 伺服器訪問資料

首先檢查本地mysql資料庫是否支援federated引擎, 如圖所示, 執行 show engines; 如圖所示: 說明不支援。 然後找到安裝目錄下的my.ini檔案,開啟編輯。 在[mysqld]  下面新增一行  federated   儲存即可。如果沒有[mysq

mysql實現伺服器查詢資料

在日常的開發中經常進行跨資料庫進行查詢資料。 同伺服器下跨資料庫進行查詢在表前加上資料庫名就可以查詢到資料。 mysql跨伺服器進行查詢提供了FEDERATED引擎進行對映表,然後進行查詢。 mysql資料庫federated引擎是關閉的,首先需要先啟用該引擎。

MySQL多表聯合查詢新增查詢欄位、引數設定

所羅門王說:沒有智慧解決不了的問題。SELECT * from tb_corporation_and_user      人員所在團隊 (`user_id`, `corporation_id` ,  `role_id` ) SELECT * from tb_corporati

Mysql表的資訊解釋show table status like ‘kaka’ \G

author:咔咔 wechat:fangkangfk   命令:show table status like 'kaka' \G  Name     表名 Engine     表的儲存引擎型別,在就

Sql 伺服器訪問資料

----開啟伺服器資料庫exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure--訪問資料庫(可以進行資

POJ1704 Georgia and BobStaircase Nim

row over diff 題目 player 技術分享 需要 ber 排序。 Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on pape

WC2001cogs358高性能計算機動態規劃

結束 輸入輸出 計算機 stdout 所有 主存 時間 span 要花 【WC2001】【cogs358】高性能計算機(動態規劃) ##題面 【問題描述】 現在有一項時間緊迫的工程計算任務要交給你——國家高性能並行計算機的主管工程師——來完成。為了盡可能充分發揮並行計算機的

BZOJbzoj1030[JSOI2007]文本生成器AC自動機

我們 acm ane mach () struct int log push 做到了AC自動機的題目,復習了一下AC自動機,學習了黃學長代碼,這個題呢,我們可以模擬在AC自動機上的操作,dp數組f[i][j]表示前i個字符,我們在AC自動機上處在j號節點的方案數。 我們可

Bsoj2684鋸木廠選址斜率優化

任務 post def sin solution name line () des Description 從山頂上到山底下沿著一條直線種植了n棵老樹。當地的政府決定把他們砍下來。為了不浪費任何一棵木材,樹被砍倒後要運送到鋸木廠。木材只能按照一個方向運輸:朝山下運。山腳下有

題解 bzoj4033: [HAOI2015]樹上染色* 動態規劃

規劃 math online 4.2 pro php 白色 AD truct bzoj4033,懶得復制,戳我戳我 Solution: 定義狀態\(dp[i][j]\)表示\(i\)號節點為根節點的子樹裏面有\(j\)個黑色節點時最大的貢獻值 然後我們要知道的就是子節點到

題解 bzoj1055: [HAOI2008]玩具取名 動態規劃

isp haoi2008 name div clas tro 規劃 pac att bzoj1055,懶得復制,戳我戳我 Solution: 區間動規(以後開始動規會在solution前面標註是啥動規 我覺的這道題挺難想了,但其實狀態定義了一下子就出來了(還是不行啊) 我

HDOJfind your present (2)思路題

利用 自己 names namespace pro ble get nbsp tdi find your present (2) 題意:找有唯一一個出現奇數次的數 思路:利用位異或。一個數異或自己本身是0; #include<stdio.h> int

在使用實體框架Entity Framework的應用中加入審計信息Audit trail跟蹤數據的變動

要求 date ted hang ng- tar () eat code 在一些比較重要的業務系統中,通常會要求系統跟蹤數據記錄的變動情況。系統要記錄什麽時間,什麽人,對那些信息進行了變動。 比較簡單的實現方式是在每個表中加入兩個字段CreatedBy和CreatedA

LOJ6053簡單的函數min_25篩

ios can long ring -s In IV Go else 題面 LOJ 題解 戳這裏 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstr

PATB1042 字符統計20 分

lower int har string.h flag char s algorithm printf for /* 15分的題很簡單,但是自己寫的時候在輸入數據時沒有考慮好下標 另外有忘記了輸入字符時考慮是否有\n */ #include<stdio