Mysql遠端資料庫同步

2021-08-07 19:41:28 字數 2237 閱讀 5324

伺服器名稱

伺服器位址

資料庫名稱

使用者名稱

密碼

資料庫伺服器a

121.xx.xx.xx

youjihui_zs

root

youjihui

3306

資料庫伺服器b

120.yy.yy.yy

youjihui_cx

root

root

3309

伺服器a中資料庫youjihui_zs中的資料表

t_index

和伺服器

b中資料庫

youjihui_cx

中資料表

t_index_cx

資料同步。

如果直接採用federated的方式,即t_index建立

federated

引擎,對映到

t_index_cx

表。由於對映後,這兩個表的資料和操作是完全同步的,也就是說,在其中任何乙個表上執行插入、更新和刪除操作,引擎會在另外乙個表中執行同樣的操作。

由於t_index是正式資料庫的表,

t_index_cx

是查詢資料庫的表。如果在查詢資料庫中運算元據,引發正式庫的資料變化,是相當有風險的。

方案結構圖如下:

過程說明:

4.1. 查詢庫授權正式庫的操作許可權

授權可以從ip為

121.xx.xx.xx

的伺服器

a上,用

root

使用者密碼是

root

,訪問當前伺服器b的

mysql

服務:grant all privileges on *.* to 'root'@'121.xx.xx.xx' identified by 'root' with grant option;

4.2. federated引擎

create table t_index_zs (

id varchar(50) not null,

mc varchar(200),

primary key(id)

)engine=federated connection='mysql:'

4.3. 觸發器

2-- insert 觸發器

drop trigger if exists tindex_insert_after_trigger;

create trigger tindex_insert_after_trigger

after insert on t_index_zs_map

for each row

begin

insert into t_index_cx(id,mc) values(new.id,new.mc);

end;

-- update 觸發器

drop trigger if  exists tindex_update_after_trigger;

create trigger tindex_update_after_trigger

after update on t_index_zs_map

for each row

begin

update t_index_cx set mc=new.mc where id=new.id;

end;

-- delete 觸發器

drop trigger if exists tindex_delete_after_trigger;

create trigger tindex_delete_after_trigger

after delete on t_index_zs_map

for each row

begin

delete from t_index_cx where id=old.id;

end;

新增2張中間表和

2個觸發器,避開正式表的直接操作,進而避免破壞正式表的資料。

遠端連線MySQL資料庫

原來因為省事把mysql資料庫和tomcat伺服器裝在乙個機器上了。所以一直以來在768m的記憶體1.89ghz的cpu的古董機上跑myeclipse,另外除錯需要用到瀏覽器還有一些開啟的現查到文件。雖然機器任勞任怨,但自己有時實在難以忍受。前兩天想到在樓上的機器上安裝mysql伺服器,開始因為使用...

遠端連線MySQL資料庫

遠端無法訪問mysql主要是由於沒有許可權,只需新增一下 即可。mysql grant all privileges on to root identified by root with grant option mysql flush privileges 重新整理一下許可權第二個 root 表示...

遠端訪問mysql資料庫

mysql資料庫預設是不能被遠端訪問的,這裡以虛擬機器中的mysql資料庫為例 在虛擬機器中的ubuntu系統中,使用 mysql uroot p 然後輸入密碼,就可以連線mysql資料庫,但是在windows下使用 mysql h ip uroot p 然後輸入密碼,提示不能連線 這裡要做兩個設定...