Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 通过ADODB库的MySQL SSL连接_Php_Mysql_Ssl_Adodb - Fatal编程技术网

Php 通过ADODB库的MySQL SSL连接

Php 通过ADODB库的MySQL SSL连接,php,mysql,ssl,adodb,Php,Mysql,Ssl,Adodb,我有一个托管在远程服务器上的MySQL数据库,它只能接受SSL连接。当我使用JavaJDBC和SSL选项连接到这个数据库时,它工作得很好。我在jdbc连接中使用了一个特殊的jdbc字符串,如下所示 “jdbc:mysql://://?verifyServerCertificate=false&usesl=true&requireSSL=true” 我需要使用ADODB库通过PHP使用类似的连接 我在网上找到了一些关于使用ADODB mysqli扩展的参考资料 (参考) 在创建CA证书(我们称之

我有一个托管在远程服务器上的MySQL数据库,它只能接受SSL连接。当我使用JavaJDBC和SSL选项连接到这个数据库时,它工作得很好。我在jdbc连接中使用了一个特殊的jdbc字符串,如下所示 “jdbc:mysql://://?verifyServerCertificate=false&usesl=true&requireSSL=true”

我需要使用ADODB库通过PHP使用类似的连接

我在网上找到了一些关于使用ADODB mysqli扩展的参考资料


(参考)

在创建CA证书(我们称之为/path/to/CA-cert.pem)后,确保以下项目位于/etc/my.cnf的[client]节或客户端主机上连接用户的~/.my.cnf中:

ssl ca=/path/to/ca-cert.pem

然后尝试以下PHP程序:

//这些是AdoDB库的一部分 需要“/path/to/adodb exceptions.inc.php”; 需要“/path/to/adodb.inc.php”

/* *我跑了2048 *printf(“%d\n”,MYSQLI\u CLIENT\u SSL) *在PHP程序中(安装了mysqli扩展) */ $dsn=mysqli://ssluser:sslpass@dbhost/test?clientflags=2048'

$dbh=NewADOConnection($dsn)

$sql=“显示类似“ssl\U密码”的状态”; $res=&$dbh->Execute($sql); 打印($res->fields); $res->Close()

$dbh->Close();

如果我从其他机器连接到此mysql数据库,是否需要证书信息

PHP是否有类似于JDBC字符串的东西

如果有人能发布一个有用的例子,那就太好了


谢谢

我没有将MySQL与SSL连接的经验。MySQL驱动程序具有(
MySQL\u CLIENT\u SSL
)可在连接时使用

要在使用AdoDB连接时进行设置,可以尝试使用我的连接模板:

$options = '';
if ($driver == 'mysql' OR $driver == 'mysqli')
{
  if ($params['pconnect'] === TRUE)
  {
    $options .= '?persist';
  }
  $flags = MYSQL_CLIENT_COMPRESS;
  if ($params['ssl'] === TRUE)
  {
    $flags = $flags | MYSQL_CLIENT_SSL;
  }
  $options .= (empty($options)?'?':'&')."clientflags=$flags";
}

$dsn = "{$driver}://{$username}:{$password}@{$hostname}/{$database}{$options}";

$adodb =& ADONewConnection($dsn);

if ($adodb)
{
  //set fetch mode
  $adodb->SetFetchMode(ADODB_FETCH_BOTH);

  //character set
  if ($driver == 'mysql' OR $driver == 'mysqli')
  {
    if (isset($params['char_set']) AND $params['char_set']
        AND isset($params['dbcollat']) AND $params['dbcollat'])
    {
      $charset    = $adodb->qstr($params['char_set']);
      $collation  = $adodb->qstr($params['dbcollat']);
      $adodb->Execute("SET NAMES $charset COLLATE $collation");
    }
  }
  if ($debug)
  {
    @ob_start();
    $adodb->debug = TRUE;
  }
}