在本地操控遠端資料

2021-08-28 18:43:47 字數 3283 閱讀 4895

mysql中有個federated的儲存引擎,使用這個引擎的資料表在本地是不儲存任何資料的,而資料全部儲存在遠端伺服器上。

1、檢視是否支援federated儲存引擎

mariadb [(none)]> show engines;

| federated | yes | federatedx pluggable storage engine | yes | no | yes |

#第乙個yes表明是支援federated儲存引擎的

#如果不支援,則修改mysql的啟動檔案my.cnf,在檔案最後一行加上 federated=1

#然後重新啟動mysql

2、建立名為 bd 的資料庫,作為本地使用

mariadb [(none)]> create database bd;

#建立名為 bd 的資料庫,作為本地資料庫使用

3、建立名為 yc 的資料庫,作為遠端使用

mariadb [(none)]> create database yc;

#建立名為 yc 的資料庫,作為遠端儲存資料使用

4、配置 yc 資料庫

建立一張資料表

mariadb [(none)]> use yc;          #使用 yc 資料庫

mariadb [yc]> create table yc_fed

-> (

-> id int auto_increment not null,

-> c1 varchar(10) not null default '',

-> c2 char(10) not null default '',

-> primary key(id)

-> )

-> engine=innodb #指定該錶的儲存引擎為innodb,預設是innodb

-> ;

插入資料

mariadb [yc]> insert into yc_fed(c1,c2)  #為表插入三行簡單資料

-> values

-> ('a','b'),

-> ('c','d'),

-> ('e','f');

mariadb [yc]> select * from yc_fed; #檢視表中的所有資料

+----+----+----+

| id | c1 | c2 |

+----+----+----+

| 1 | a | b |

| 2 | c | d |

| 3 | e | f |

+----+----+----+

為這個庫的表建立使用者並賦予許可權

mariadb [yc]> grant select,update,insert,delete on yc.yc_fed to vincen@'127.0.0.1' identified by '123';

#在ip為127.0.0.1(本地)為yc庫的yc_fed表建立乙個名為vincen的使用者,密碼為123,賦予的許可權為select,update,insert,delete

5、配置 bd 資料庫

建立一張資料結構和yc_fed的資料表

mariadb [yc]> use bd;               #使用 bd 資料庫

mariadb [bd]> create table bd_fed #建立一張名為bd_fed的表,注意資料結構要和yc_fed的一致

-> (

-> id int(11) not null auto_increment,

-> c1 varchar(10) not null default '',

-> c2 char(10) not null default '',

-> primary key(id)

-> )

-> engine=federated connection='mysql:'

#指定這個表的儲存引擎為federated,以vincen使用者,密碼為123,在本地連線 yc 資料庫中的 yc_fed 資料表

-> ;

6、在 bd_fed 表上查詢資料

mariadb [bd]> select * from bd_fed;   #檢視 bd 庫的 bd_fed 表的資料

+----+----+----+

| id | c1 | c2 |

+----+----+----+

| 1 | a | b |

| 2 | c | d |

| 3 | e | f |

+----+----+----+

3 rows in set (0.02 sec)

#建立這個表後並沒有插入任何資料

#這有三條資料記錄,和 yc 庫中的 yc_fed 表中的資料是一樣的

7、刪除 bd_fed 表中其中一行資料

mariadb [bd]> delete from bd_fed where id = 2;  #在 bd_fed 表中刪除id=2的資料 

mariadb [bd]> select * from bd_fed; #檢視執行刪除操作後的 bd_fed 表

+----+----+----+

| id | c1 | c2 |

+----+----+----+

| 1 | a | b |

| 3 | e | f |

+----+----+----+

#可以看到id為2的資料行已經刪除

8、回到 yc_fed表中檢視資料

mariadb [bd]> use yc;                 #使用 yc 資料庫

mariadb [yc]> select * from yc_fed; #檢視 yc_fed 表

+----+----+----+

| id | c1 | c2 |

+----+----+----+

| 1 | a | b |

| 3 | e | f |

+----+----+----+

#對比剛開始插入資料時,現在這個表少了id為2的資料

ssh遠端操控mysql

注意 我們用php來控制linux,php環境可以在windows也可以在linux,但是我們要控制的機器是一台linux 被控制的linux關閉selinux和firewalld 然後我們的php環境要想實現控制linux,必須安裝php的乙個擴充套件ssh2 2.這裡是centos中的php安裝...

通過ssh遠端(在區域網內)操控linux

推薦大家看乙個up主的 首先在linux終端裝乙個server sudo apt get install openssh server獲取linux在區域網中的ip位址,如果不能執行這個,安裝乙個包sudo apt install net tools ifconfig在輸出裡面找inet後面就是,1...

win電腦遠端操控ubuntu xshell

做乙個專案的時候,有乙個包硬是裝不上去,老師建議我搭乙個虛擬python環境,我搭好了,下面是通過xshell開啟虛擬環境中的jupyter 1.進入虛擬環境 source venv bin activate venv是虛擬環境的名字 2.開啟jupyter notebook jupyter not...