学习啦 > 学习电脑 > 电脑安全 > 局域网安全 > MYSQL数据库远程访问

MYSQL数据库远程访问

时间: 林泽1002 分享

MYSQL数据库远程访问

  项目中遇到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;

MYSQL 数据库远程访问相关文章:

1.怎样远程访问mysql数据库

2.远程访问mysql数据库

3.mysql怎么设置远程连接数据库

4.mysql数据库允许远程连接

5.外网如何访问局域网内网的mysql数据库

6.MySql数据库安装后开启远程连接

2817183