Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-VPN上的PDO/mysqli连接存在问题_Php_Mysql_Laravel_Pdo_Vpn - Fatal编程技术网

PHP-VPN上的PDO/mysqli连接存在问题

PHP-VPN上的PDO/mysqli连接存在问题,php,mysql,laravel,pdo,vpn,Php,Mysql,Laravel,Pdo,Vpn,我正在尝试首先通过VPN连接创建到本地数据库服务器的连接 通过VPN连接,我收到网络的此IP: 192.168.30.2 数据库服务器: 192.168.40.150 如果我尝试通过PHP ping DB服务器IP,我也会收到服务器的响应。但是,当我尝试建立PDO连接或使用“mysqli”时,我收到以下错误: lluminate \ Database \ QueryException: SQLSTATE [HY000] [1045] Access denied for user 'xxxx'@'

我正在尝试首先通过VPN连接创建到本地数据库服务器的连接

通过VPN连接,我收到网络的此IP: 192.168.30.2

数据库服务器: 192.168.40.150

如果我尝试通过PHP ping DB服务器IP,我也会收到服务器的响应。但是,当我尝试建立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客户端,它工作得很好


有什么想法吗?

已解决:数据库服务器需要SSL连接(无证书)。PDO连接中需要以下选项:

  • PDO::MYSQL\u ATTR\u SSL\u VERIFY\u SERVER\u CERT
  • PDO::MYSQL\u ATTR\u SSL\u CA
如果将Laravel Lightning用于连接,则需要取消连接中的选项,例如:

...
        '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', ' '),
        ]) : [],
...

在这种情况下,给一个空空格值非常重要,否则PDO连接器将无法获得选项值。

mysql中的用户是否接受192.168.30.2中的连接?('xxxx'@'')?如果我在本地计算机上使用mysql客户端软件,请检查此和此@SmasherHell是否正常工作。IP为:192.168.30。2@Dlk配置似乎还可以。我试着调试PDO连接,主机是:192.168.40.150。我不明白,因为PDO连接器使用VPN的IP地址('xxxx'@'192.168.30.2'),我不是laravel人。但听起来您需要在连接中包含端口?