当没有启用外部访问且我无法启用它时,是否有办法使用C#访问MySQL数据库?某种PHP接口或类似的东西可能? 提前谢谢。
答案 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#包装的连接方式。