PHP-VPN上的PDO/mysqli连接存在问题
我正在尝试首先通过VPN连接创建到本地数据库服务器的连接 通过VPN连接,我收到网络的此IP: 192.168.30.2 数据库服务器: 192.168.40.150 如果我尝试通过PHP ping DB服务器IP,我也会收到服务器的响应。但是,当我尝试建立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'@'
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
...
'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人。但听起来您需要在连接中包含端口?