Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用联邦数据库连接两台服务器_Php_Mysql_Sql Server_Laravel 5_Phpmyadmin - Fatal编程技术网

Php 使用联邦数据库连接两台服务器

Php 使用联邦数据库连接两台服务器,php,mysql,sql-server,laravel-5,phpmyadmin,Php,Mysql,Sql Server,Laravel 5,Phpmyadmin,我在服务器A中有一个数据库,但我的应用程序正在服务器B中运行 因此,为了分离信息,我在服务器B中使用Federated从服务器A访问表。我尝试了两种方法: CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (DATABASE 'XPTO', USER 'aaa', PASSWORD 'aaa', HOST 'serverA'); CREATE TABLE IF NOT EXISTS `test` ( `col1` int(11) NOT

我在服务器A中有一个数据库,但我的应用程序正在服务器B中运行

因此,为了分离信息,我在服务器B中使用Federated从服务器A访问表。我尝试了两种方法:

CREATE SERVER s
FOREIGN DATA WRAPPER mysql
OPTIONS (DATABASE 'XPTO', USER 'aaa', PASSWORD 'aaa', HOST 'serverA');

CREATE TABLE IF NOT EXISTS `test` (
  `col1` int(11) NOT NULL AUTO_INCREMENT,
  `col2` int(11) NOT NULL,
  PRIMARY KEY (`col1`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='s';
我试过这个:

CREATE TABLE IF NOT EXISTS `test` (
  `col1` int(11) NOT NULL AUTO_INCREMENT,
  `col2` int(11) NOT NULL,
  PRIMARY KEY (`col1`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://aaa:aaa@IP_ADDRESS:3306/XPTO/test'
问题是我有很多关系。这是每个表的一个连接,每次我再次执行查询时,它都会创建一个新连接。如果我有11个表,它会创建11个连接,在再次执行之后,我得到11+11个连接=22个连接,依此类推

在创建了这个之后,问题仍然存在。 因此,我尝试在服务器B中使用上一个代码创建的表创建一个视图,并且只在视图中进行查询。但问题仍然存在


如何执行查询并关闭处于睡眠状态的连接?

这是FEDERATED的问题之一。您可以通过发出FLUSH LOCAL TABLE t1手动关闭它们;但我怀疑这就是你想要的答案。开放式连接是否存在问题?许多人似乎过于担心它们,但他们正在睡觉,除了一点点内存之外,在资源方面没有消耗太多。@Michael sqlbot这是一个问题,因为有时我会在应用程序尝试连接时出错,因为有很多连接。当您创建视图时,您是如何在使用FEDERATED的客户机服务器上做到这一点的?联合视图有一个诀窍-您不能将其声明为客户端服务器上的视图。@Michael sqlbot我创建的方法如下:创建视图v_cs_type作为SELECT*FROM database.cs_type;这是FEDERATED的问题之一。您可以通过发出FLUSH LOCAL TABLE t1手动关闭它们;但我怀疑这就是你想要的答案。开放式连接是否存在问题?许多人似乎过于担心它们,但他们正在睡觉,除了一点点内存之外,在资源方面没有消耗太多。@Michael sqlbot这是一个问题,因为有时我会在应用程序尝试连接时出错,因为有很多连接。当您创建视图时,您是如何在使用FEDERATED的客户机服务器上做到这一点的?联合视图有一个诀窍-您不能将其声明为客户端服务器上的视图。@Michael sqlbot我创建的方法如下:创建视图v_cs_type作为SELECT*FROM database.cs_type;