MYSQL數(shù)據(jù)庫遠(yuǎn)程訪問
MYSQL數(shù)據(jù)庫遠(yuǎn)程訪問
項(xiàng)目中遇到A項(xiàng)目需要訪問B項(xiàng)目的數(shù)據(jù)庫,共同使用同一個(gè)用戶表,此時(shí)需要用到數(shù)據(jù)庫的遠(yuǎn)程訪問。下面是學(xué)習(xí)啦小編跟大家分享的是MYSQL 數(shù)據(jù)庫遠(yuǎn)程訪問,歡迎大家來閱讀學(xué)習(xí)。
MYSQL 數(shù)據(jù)庫遠(yuǎn)程訪問
方法/步驟
本地項(xiàng)目的數(shù)據(jù)庫需要開啟federated引擎才能訪問遠(yuǎn)程數(shù)據(jù)庫的表。
MYSQL命令行,查看FEDERATED引擎是否開啟,默認(rèn)是不開啟。
>show engines;
如下圖,我的已經(jīng)開啟引擎。
如果沒有開啟,配置my.cnf[mysqld]feterated
重新啟動(dòng)mysql服務(wù)器。
遠(yuǎn)程IPB的數(shù)據(jù)庫也要開啟遠(yuǎn)程連接。這樣本地的數(shù)據(jù)庫DB1才有權(quán)限訪問遠(yuǎn)程數(shù)據(jù)庫DB2.
創(chuàng)建遠(yuǎn)程登陸用戶并授權(quán):
執(zhí)行以下命令:(下面有詳細(xì)說明)
USE mysql;
SELECT host,user,PASSWORD from user;
GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "yourpassward";
FLUSH PRIVILEGES;
USE mysql;
SELECT host,user,PASSWORD from user;
grant all PRIVILEGES on study.* to tom@'192.168.4.156' identified by 'sun3d';
上面的語句表示將 study 數(shù)據(jù)庫的所有權(quán)限授權(quán)給 tom 這個(gè)用戶,允許 tom 用戶在 192.168.4.156這個(gè) IP 進(jìn)行遠(yuǎn)程登陸,并設(shè)置 tom 用戶的密碼為 sun3d。
下面逐一分析所有的參數(shù):
all PRIVILEGES 表示賦予所有的權(quán)限給指定用戶,這里也可以替換為賦予某一具體的權(quán)限,例如:select,insert,update,delete,create,drop 等,具體權(quán)限間用“,”半角逗號(hào)分隔。
study.* 表示上面的權(quán)限是針對于哪個(gè)表的,study 指的是數(shù)據(jù)庫,后面的 * 表示對于所有的表,由此可以推理出:對于全部數(shù)據(jù)庫的全部表授權(quán)為“*.*”,對于某一數(shù)據(jù)庫的全部表授權(quán)為“數(shù)據(jù)庫名.*”,
對于某一數(shù)據(jù)庫的某一表授 權(quán)為“數(shù)據(jù)庫名.表名”。
tom 表示你要給哪個(gè)用戶授權(quán),這個(gè)用戶可以是存在的用戶,也可以是不存在的用戶。
這里為了易用性你最好用root用戶,因?yàn)閯e人遠(yuǎn)程的時(shí)候也會(huì)用,密碼也要用root用戶的密碼,因?yàn)閯e人也是這么用的。(保證大家都用同一個(gè)登錄信息訪問同一個(gè)數(shù)據(jù)庫,這是非常重要的)
192.168.4.156表示允許遠(yuǎn)程連接的 IP 地址,如果想不限制鏈接的 IP 則設(shè)置為“%”即可。
sun3d 為用戶的密碼。
執(zhí)行了上面的語句后,再執(zhí)行下面的語句,方可立即生效。
> flush privileges;
在本地?cái)?shù)據(jù)庫DB1中創(chuàng)建遠(yuǎn)程數(shù)據(jù)庫表
要求表結(jié)構(gòu)要一模一樣,所以可以先
在B2里面找到建立表table的語句
SHOW CREATE TABLE DB2.table。
在本地?cái)?shù)據(jù)庫執(zhí)行sql語句:
CREATE TABLE `sys_user` (
`USER_ID` varchar(32) NOT NULL,
`USER_ACCOUNT` varchar(50) DEFAULT NULL,
`USER_ADDRESS` varchar(100) DEFAULT NULL,
`USER_BIRTHDAY` date DEFAULT NULL,
`USER_CITY` varchar(32) DEFAULT NULL,
`USER_COUNTY` varchar(32) DEFAULT NULL,
`USER_CREATE_TIME` datetime DEFAULT NULL,
`USER_CREATE_USER` varchar(32) DEFAULT NULL,
`USER_DEPT_ID` varchar(32) DEFAULT NULL,
`USER_DEPT_PATH` longtext,
`USER_EMAIL` varchar(50) DEFAULT NULL,
`USER_ID_CARD_NO` varchar(18) DEFAULT NULL,
`USER_IS_ASSIGN` int(11) DEFAULT NULL,
`USER_IS_MANGER` int(11) DEFAULT NULL,
`USER_ISDISPLAY` int(11) DEFAULT NULL,
`USER_MOBILE_PHONE` varchar(11) DEFAULT NULL,
`USER_NICK_NAME` varchar(100) DEFAULT NULL,
`USER_PASSWORD` varchar(100) DEFAULT NULL,
`USER_PROVINCE` varchar(32) DEFAULT NULL,
`USER_QQ` varchar(15) DEFAULT NULL,
`USER_SEX` int(11) DEFAULT NULL,
`USER_STATE` int(11) DEFAULT NULL,
`USER_TELEPHONE` varchar(15) DEFAULT NULL,
`USER_UPDATE_TIME` datetime DEFAULT NULL,
`USER_UPDATE_USER` varchar(32) DEFAULT NULL,
PRIMARY KEY (`USER_ID`),
UNIQUE KEY `USER_ID` (`USER_ID`)
) ENGINE=federated connection="mysql://tom:sun3d@180.169.9.123:3306/xuhui/sys_user" DEFAULT CHARSET=utf8;
MYSQL 數(shù)據(jù)庫遠(yuǎn)程訪問相關(guān)文章:
1.怎樣遠(yuǎn)程訪問mysql數(shù)據(jù)庫
3.mysql怎么設(shè)置遠(yuǎn)程連接數(shù)據(jù)庫
4.mysql數(shù)據(jù)庫允許遠(yuǎn)程連接