(Azure) MySQL:MySQL 服务器已经消失

Posted

技术标签:

【中文标题】(Azure) MySQL:MySQL 服务器已经消失【英文标题】:(Azure) MySQL: MySQL Server Has Gone Away 【发布时间】:2017-01-21 19:51:24 【问题描述】:

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

php 警告:PDO::__construct(): MySQL server has gone away in C:\Users\admin\app\dbtest.php 第 3 行 PHP 警告:PDO::__construct():读取问候包时出错。 PID=11692 in C:\Users\admin\app\dbtest.php 上线 3

警告:PDO::__construct(): MySQL 服务器已在 C:\Users\admin\app\dbtest.php 在第 3 行

警告:PDO::__construct():读取问候包时出错。 PID=11692 in C:\Users\admin\app\dbtest.php 上线 3 连接到 SQL Server.PDOException 对象时出错( [message:protected] => SQLSTATE[HY000] [2006] MySQL 服务器已消失 [字符串:异常:私人] => [代码:受保护] => 2006 [文件:受保护] => C:\Users\admin\app\dbtest.php [行:受保护] => 3 [trace:Exception:private] => 数组 ( [0] => 数组 ( [文件] => C:\Users\admin\app\dbtest.php [行] => 3 [函数] => __构造 [类] => PDO [类型] => -> [参数] => 数组 ( [0] => mysql:dbname=mydb;host=app.database.windows.net;port=1433 2 => 管理员 2 => 通过 ) ) ) [上一个:例外:私人] => [errorInfo] => ) 1 进程以退出代码 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 数据库需要哪些常规连接设置?

【问题讨论】:

【参考方案1】:

app.database.windows.net;port=1433 格式的数据库端点是提供 SQL Server 服务的 Azure SQL 的端点。不是 MySQL。请尝试在https://www.microsoft.com/en-us/download/details.aspx?id=20098 安装适用于 Windows 的 SQL Server 驱动程序。然后尝试使用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/。

如有任何疑问,请随时告诉我。

【讨论】:

以上是关于(Azure) MySQL:MySQL 服务器已经消失的主要内容,如果未能解决你的问题,请参考以下文章

Azure MySQL数据库错误客户端和服务器无法通信,因为它们没有通用算法

将 Xamarin 应用注册页面连接到 MySQL 的 Azure 数据库

MYSQL 变更数据捕获 (CDC) - Azure 服务(Azure 数据工厂)

在Azure上创建MYSQL服务

连接到 Azure Mysql 服务器

Windows Azure 之 安全控制-ACL