簡體   English   中英

Azure 虛擬機 - 無法訪問 MySQL 數據庫

[英]Azure Virtual Machine - Can't access MySQL database

我確實在 Azure 門戶中創建並設置了一個虛擬機作為我的 MySQL 服務器。 此時我可以使用 PHPMyAdmin 正常遠程訪問我的數據庫。 但是,嘗試使用 PHP 腳本或 Virtual Studio 代碼連接它時,出現連接錯誤。

我的 PHP 腳本:

$mysqli = new mysqli('valicon.brazilsouth.cloudapp.azure.com:3306', 'myuser', 'mypassword', 'mydatabase');

if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
echo '<p>Connection OK '. $mysqli->host_info.'</p>';
echo '<p>Server '.$mysqli->server_info.'</p>';
$mysqli->close();

我得到的錯誤:

連接錯誤 (2002) 連接嘗試失敗,因為連接方在一段時間后沒有正確響應,或者由於連接的主機未能響應而建立的連接失敗。

我在 web.config 文件(Visual Studio)中的連接字符串:

<add name="MySQLConnection" 
         providerName="MySql.Data.MySqlClient" 
    connectionString="server=valicon.brazilsouth.cloudapp.azure.com; user id=myuser; Password=mypassword; database=mydatabase; SslMode=none" />

我得到的錯誤:

MySql.Data.MySqlClient.MySqlException:無法連接到任何指定的 MySQL 主機。

我錯過了什么? 為什么我可以使用 PHPMyAdmin 遠程訪問和管理我的數據庫,但無法將其與 PHP 或 ASP.NET 項目連接?

更新

我向我的虛擬機設置添加了一個連接規則,該規則將端口 3306 開放給外部連接。 現在我從 PHP 腳本中得到另一個錯誤:

無法建立連接,因為目標機器主動拒絕它。

我確實發現了問題所在。 所以,對於誰有興趣,我會在這里留下答案。

我無法通過 PHP 或 ASP.NET 代碼遠程連接數據庫,因為 MySQL 配置中的“綁定地址”變量設置為 127.0.0.1 值。 這意味着只有本地主機可以連接。

所以,評論這一行

bind-address = 127.0.0.1

在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件(Linux Ubuntu 18.04)中,我可以打開與任何 IP 地址的連接。

由於 PHPMyAdmin 在本地運行,因此即使將 'bind-address' 設置為 127.0.0.1,它也可以連接數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM