php - (Azure) MySQL : MySQL Server Has Gone Away

标签 php mysql azure pdo azure-sql-database

遵循guide on Azure, configuring the firewall settings ,我仍然无法访问我的 MySQL 数据库。即使 IP 地址已列入白名单,我也会从所有服务器获取以下信息:

PHP Warning: PDO::__construct(): MySQL server has gone away in C:\Users\admin\app\dbtest.php on line 3 PHP Warning: PDO::__construct(): Error while reading greeting packet. PID=11692 in C:\Users\admin\app\dbtest.php on line 3

Warning: PDO::__construct(): MySQL server has gone away in C:\Users\admin\app\dbtest.php on line 3

Warning: PDO::__construct(): Error while reading greeting packet. PID=11692 in C:\Users\admin\app\dbtest.php on line 3 Error connecting to SQL Server.PDOException Object ( [message:protected] => SQLSTATE[HY000] [2006] MySQL server has gone away [string:Exception:private] => [code:protected] => 2006 [file:protected] => C:\Users\admin\app\dbtest.php [line:protected] => 3 [trace:Exception:private] => Array ( [0] => Array ( [file] => C:\Users\admin\app\dbtest.php [line] => 3 [function] => __construct [class] => PDO [type] => -> [args] => Array ( [0] => mysql:dbname=mydb;host=app.database.windows.net;port=1433 2 => admin 2 => pass ) ) ) [previous:Exception:private] => [errorInfo] => ) 1 Process finished with exit code 0

这是我要连接的 PHP 脚本:

<?php
try {
    $conn = new PDO("mysql:dbname=db;host=app.database.windows.net;port=1433", "admin", "pass");

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
    print("Error connecting to SQL Server.");
    die(print_r($e));
}

连接到 Azure MySQL 数据库而不发生连接超时需要哪些常规连接设置?

最佳答案

这种格式的数据库端点app.database.windows.net;port=1433是提供SQL Server服务的Azure SQL的端点。不是MySQL。请尝试安装 Windows 版 SQL Server 驱动程序 https://www.microsoft.com/en-us/download/details.aspx?id=20098 。然后尝试使用 new PDO( "sqlsrv:server=$serverName ; Database=AdventureWorks", "{user}", "{pass}"); 连接到 Azure SQL。

如果您想在Azure上使用MySQL BaaS,可以引用https://azure.microsoft.com/en-us/documentation/articles/store-php-create-mysql-database/了解详细步骤。

如有任何进一步的疑问,请随时告诉我。

关于php - (Azure) MySQL : MySQL Server Has Gone Away,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483113/

相关文章:

php - codeigniter 自定义 404 页面不工作

mysql - 轻量级 mySQL 服务器?

php - 将 NULL 传递给旨在在 PHP 中构建 MySQL 查询的函数

java - 带有 AMQP 的 Azure 服务总线 - 如何指定 session ID

c# - 升级到 Microsoft.WindowsAzure.Storage 4.0.0 后表实体未正确序列化

php - && 运算符的异常使用

php - UNION ALL 查询不匹配的表

php mail() 不适用于 Windows 2003、IIS SMTP

mysql - TiDB CREATE FUNCTION 返回错误

azure - SitecoreContext 和 Azure 索引