Mysql外部访问

时间:2011-01-31 09:04:12

标签: c# php mysql database interface

当没有启用外部访问且我无法启用它时,是否有办法使用C#访问MySQL数据库?某种PHP接口或类似的东西可能? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在HTTP之上编写自己的协议,(或者在SOAP之上,在HTTP之上),但是您需要确保不要通过这样做来破坏安全性....

<?php

$shared_secret = 'shhhh_s3cr3t!';
$qry=$_GET['qry'];
$remote_ip=_SERVER["REMOTE_ADDR"];
if (sha1($shared_secret . $qry , $remote_ip)!=$_GET['auth']) {
         header("HTTP/1.1 401 Unauthorized");
         print "not authorized!";
         exit;
} else {
   $dbh=mysql_connect($db_host, $db_user, $db_pass);
   if ($dbh===false) error_reply();
   $r=mysql_query($_GET['qry'], $dbh);
   if ($r===false) error_reply();
   $result=array();
   while ($result[]=mysql_fetch_assoc($r));
   print serialize($result);
   exit;
}

function error_reply()
{
   header("HTTP/1.1 503 Internal Server Error");
   print mysql_error();
}

答案 1 :(得分:0)

对MySQL数据库的访问权限取决于数据库是否配置为从远程IP地址侦听端口,以及网络是否允许该端口上的流量。数据库和防火墙/网络都需要配置。除非这些都配置为允许外部访问,否则您将无法远程访问数据库。

如果这些设置和配置正确,那么您应该能够使用客户端库以某种方式远程访问数据库。我不知道C#是否对连接到远程数据库有自己的限制,如果有,那么是的,你需要找到另一种可以用C#包装的连接方式。