/** @var string|null */
protected $sslCertPath;
/** @var string|null */
+ protected $sslCAFile;
+ /** @var string|null */
protected $sslCAPath;
/** @var string[]|null */
protected $sslCiphers;
* - useGTIDs : use GTID methods like MASTER_GTID_WAIT() when possible.
* - sslKeyPath : path to key file [default: null]
* - sslCertPath : path to certificate file [default: null]
- * - sslCAPath : parth to certificate authority PEM files [default: null]
+ * - sslCAFile: path to a single certificate authority PEM file [default: null]
+ * - sslCAPath : parth to certificate authority PEM directory [default: null]
* - sslCiphers : array list of allowable ciphers [default: null]
* @param array $params
*/
? $params['lagDetectionOptions']
: [];
$this->useGTIDs = !empty( $params['useGTIDs' ] );
- foreach ( [ 'KeyPath', 'CertPath', 'CAPath', 'Ciphers' ] as $name ) {
+ foreach ( [ 'KeyPath', 'CertPath', 'CAFile', 'CAPath', 'Ciphers' ] as $name ) {
$var = "ssl{$name}";
if ( isset( $params[$var] ) ) {
$this->$var = $params[$var];
*/
abstract protected function mysqlError( $conn = null );
+ protected function wasQueryTimeout( $error, $errno ) {
+ return $errno == 2062;
+ }
+
/**
* @param string $table
* @param array $uniqueIndexes
* @see https://www.percona.com/doc/percona-toolkit/2.1/pt-heartbeat.html
*/
protected function getHeartbeatData( array $conds ) {
+ // Query time and trip time are not counted
+ $nowUnix = microtime( true );
// Do not bother starting implicit transactions here
$this->clearFlag( self::DBO_TRX, self::REMEMBER_PRIOR );
try {
$this->restoreFlags();
}
- return [ $row ? $row->ts : null, microtime( true ) ];
+ return [ $row ? $row->ts : null, $nowUnix ];
}
protected function getApproximateLagStatus() {
}
/**
- * @param string $sql
- * @param string $newLine
+ * @param string &$sql
+ * @param string &$newLine
* @return bool
*/
public function streamStatementEnd( &$sql, &$newLine ) {