php - 使用 PHP 连接到 Azure Database for MySQL
问题描述
无法连接到我的 Azure Database for MySQL。这是我的PHP代码:
class access {
var $user = "##";
var $pass = "##";
var $conn = null;
var $result = null;
var $StudentID = null;
var $sql = null;
public function connect() {
$this->conn = new mysqli( host: 'autosign.database.windows.net', username: '##', passwd: '##', dbname: 'Automat');
if (mysqli_connect_error()){
echo 'Could not connect to database';
} else {
echo 'Connected and Selected';
}
}
}
我正在使用 XAMMP 运行 PHP 脚本。我正在使用模板应用程序,因此无法使用默认的 Azure 应用程序连接,并且我未能成功使用可下载的 Azure 框架。
解决方案
我的第一直觉告诉我,您的 Azure Database for MySQL 配置为需要 SSL,而您的代码没有使用它。
你有两个选择:
- 禁用 SSL 要求(不推荐)
- 配置您的 PHP 代码,使其使用 SSL 进行连接
执行 #1 和 #2 的文档在这里,带有代码示例:https ://docs.microsoft.com/en-us/azure/mysql/howto-configure-ssl#php
简而言之:
从https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem下载 SSL CA 证书,并将其放入包含 PHP 代码的文件夹中。然后,编辑连接,使其类似于(从文档复制):
$conn = mysqli_init();
mysqli_ssl_set($conn, NULL, NULL, "/path/to/your/cert/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL);
mysqli_real_connect($conn, 'autosign.mysql.database.azure.com', $user, $pass, 'Automat', 3306, MYSQLI_CLIENT_SSL, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
推荐阅读
- mysql - MySQL returning multiple rows that does not match search criteria
- scala - Spark 在 RDD 中使用时间戳
- angular - 如何使用 ionic 4 和 ng2-pdf-viewer 修复“错误错误:未捕获(承诺):错误:模板解析错误”
- android - 如何保护谷歌 API 密钥
- php - 不应直接访问产品 ID
- python-3.x - 使用规则完成主页面后抓取“下一页”
- python - 具有固定大小的 topN 解的背包变体问题
- python - 在 scikit-learn 中选择特征子集进行训练
- javascript - 我正在尝试复制条带格式或仅适用于可见数据,Google Sheets Script
- asp.net - Razor 中数组的唯一字段名称