PHP - проблема с подключением PDO / mysqli через VPN - PullRequest
0 голосов
/ 27 апреля 2020

Сначала я пытаюсь создать соединение с локальным сервером базы данных через VPN-соединение.

Из VPN-подключения я получаю этот IP-адрес для своей сети: 192.168.30.2

DB-Server: 192.168.40.150

Если я попытаюсь пропинговать IP-адрес БД-сервера через PHP, я также получу ответ от Сервера. Однако, когда я пытаюсь установить соединение с PDO или с помощью «mysqli», я получаю следующую ошибку:

lluminate \ Database \ QueryException: SQLSTATE [HY000] [1045] Access denied for user 'xxxx'@'192.168.30.2' (using password: YES) (SQL: select * from `xxxx`) in file

Если я использую Mysql клиент из моего P C, он работает нормально!

Есть идеи?

1 Ответ

1 голос
/ 27 апреля 2020

решено : серверу БД требовалось соединение SSL (без сертификата). Эти параметры требовались при подключении к PDO:

  • PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
  • PDO::MYSQL_ATTR_SSL_CA

Если вы используете Laravel Подсветка для соединения, которое вы необходимо отклонить параметры в соединении, например:

...
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => env('MY_SSL_VERIFY', ' '),
            PDO::MYSQL_ATTR_SSL_CA => env('MY_SSL_CA', ' '),
        ]) : [],
...

В этом случае действительно важно задать значение с пустым пространством ' ', иначе соединитель Illuminate PDO не получит значения параметра.

...