我有远程服务器(Windows Server 2008),安装了MySql服务器,服务器有专用IP。我可以使用简单的 mysqli 连接从远程 php 客户端连接到该服务器。但我无法使用所有其他客户端(MySqlWorkBench、C# 等)从我的家庭 PC 进行连接。
要从 C# 进行连接,我使用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
string server = "servdomain.su";
string database = "dbname";
string uid = "root";
string password = "root";
string connectionString;
connectionString = "SERVER=" + server + "; PORT = 3307 ;" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();
}
}
}
PHP 代码:
$host="servdomain.su:3307";
$port=;
$socket="";
$user="root";
$password="root";
$dbname="";
$q = "SHOW DATABASES";
$mysqli = new mysqli($host, 'root', 'root', 'dbname');
if ($result = $mysqli->query("SELECT * FROM incli_measurements")) {
while ($row = $result->fetch_row()) {
print_r($row);
}
}
print_r($mysqli);
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
print_r($mysqli);
echo "4564654";
exit;
每次我有: 无法连接到任何指定的 MySQL 主机。
- 客户端和服务器上的防火墙已关闭
- 用户拥有数据库的所有权限
- 我不仅从 root 尝试过其他用户
- 我尝试更改默认的 MySql 服务器端口
最佳答案
看起来连接字符串应该使用 PWD 而不是 PASSWORD。 您尝试过以下方法吗?
connectionString = "SERVER=" + server + "; PORT = 3307 ;" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PWD=" + password + ";";
关于c# - 无法从除 php 之外的所有客户端连接到远程 MySql 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28433121/