MYSQL 数据库远程访问

2017-06-01

项目中遇到A项目需要访问B项目的数据库,共同使用同一个用户表,此时需要用到数据库的远程访问。下面是小编跟大家分享的是MYSQL 数据库远程访问,欢迎大家来阅读学习~

MYSQL 数据库远程访问

方法/步骤

本地项目的数据库需要开启federated引擎才能访问远程数据库的表。

MYSQL命令行,查看FEDERATED引擎是否开启,默认是不开启。

>show engines;

如下图,我的已经开启引擎。

如果没有开启,配置my.cnf[mysqld]feterated

重新启动mysql服务器。

远程IPB的数据库也要开启远程连接。这样本地的数据库DB1才有权限访问远程数据库DB2.

创建远程登陆用户并授权:

执行以下命令:(下面有详细说明)

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 数据库的所有权限授权给 tom 这个用户,允许 tom 用户在 192.168.4.156这个 IP 进行远程登陆,并设置 tom 用户的密码为 sun3d。

下面逐一分析所有的参数:

all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

study.* 表示上面的权限是针对于哪个表的,study 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,

对于某一数据库的某一表授 权为“数据库名.表名”。

tom 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

这里为了易用性你最好用root用户,因为别人远程的时候也会用,密码也要用root用户的密码,因为别人也是这么用的。(保证大家都用同一个登录信息访问同一个数据库,这是非常重要的)

192.168.4.156表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

sun3d 为用户的密码。

执行了上面的语句后,再执行下面的语句,方可立即生效。

> flush privileges;

在本地数据库DB1中创建远程数据库表

要求表结构要一模一样,所以可以先

在B2里面找到建立表table的语句

SHOW CREATE TABLE DB2.table。

在本地数据库执行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;

更多相关阅读

最新发布的文章