Подключение к базе данных Azure для MySQL с помощью PHP - PullRequest
0 голосов
/ 27 апреля 2018

Не удается подключиться к моей базе данных Azure для 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.

1 Ответ

0 голосов
/ 27 апреля 2018

Мой первый инстинкт подсказывает мне, что ваша база данных Azure для MySQL настроена на использование SSL, и ваш код его не использует.

У вас есть два варианта:

  1. Отключить требование SSL ( не рекомендуется )
  2. Сконфигурируйте ваш PHP-код, чтобы он подключался с использованием SSL

Документация для выполнения и # 1, и # 2 здесь, с примерами кода: https://docs.microsoft.com/en-us/azure/mysql/howto-configure-ssl#php

Короче говоря:

Загрузите сертификат SSL CA из https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem и поместите его в папку с вашим 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...