@@ -872,7 +872,8 @@ public function __construct() {
872872 if ( getenv ( 'WP_CLI_TEST_DBTYPE ' ) ) {
873873 $ this ->variables ['DB_TYPE ' ] = getenv ( 'WP_CLI_TEST_DBTYPE ' );
874874 } else {
875- $ this ->variables ['DB_TYPE ' ] = 'mysql ' ;
875+ // Auto-detect database type if not explicitly set
876+ $ this ->variables ['DB_TYPE ' ] = Utils \get_db_type ();
876877 }
877878
878879 if ( getenv ( 'MYSQL_TCP_PORT ' ) ) {
@@ -1210,7 +1211,7 @@ private function set_cache_dir(): void {
12101211 * Run a MySQL command with `$db_settings`.
12111212 *
12121213 * @param string $sql_cmd Command to run.
1213- * @param array<string, string> $assoc_args Optional. Associative array of options. Default empty.
1214+ * @param array<string, string|bool > $assoc_args Optional. Associative array of options. Default empty.
12141215 * @param bool $add_database Optional. Whether to add dbname to the $sql_cmd. Default false.
12151216 * @return array{stdout: string, stderr: string, exit_code: int}
12161217 */
@@ -1243,8 +1244,9 @@ public function create_db(): void {
12431244 return ;
12441245 }
12451246
1246- $ dbname = self ::$ db_settings ['dbname ' ];
1247- self ::run_sql ( self ::$ mysql_binary . ' --no-defaults ' , [ 'execute ' => "CREATE DATABASE IF NOT EXISTS $ dbname " ] );
1247+ $ dbname = self ::$ db_settings ['dbname ' ];
1248+ $ ssl_flag = 'mariadb ' === self ::$ db_type ? ' --ssl-verify-server-cert ' : '' ;
1249+ self ::run_sql ( self ::$ mysql_binary . ' --no-defaults ' . $ ssl_flag , [ 'execute ' => "CREATE DATABASE IF NOT EXISTS $ dbname " ] );
12481250 }
12491251
12501252 /**
@@ -1255,8 +1257,9 @@ public function test_connection(): void {
12551257 return ;
12561258 }
12571259
1260+ $ ssl_flag = 'mariadb ' === self ::$ db_type ? ' --ssl-verify-server-cert ' : '' ;
12581261 $ sql_result = self ::run_sql (
1259- self ::$ mysql_binary . ' --no-defaults ' ,
1262+ self ::$ mysql_binary . ' --no-defaults ' . $ ssl_flag ,
12601263 [
12611264 'execute ' => 'SELECT 1 ' ,
12621265 'send_to_shell ' => false ,
@@ -1282,13 +1285,14 @@ public function drop_db(): void {
12821285 if ( 'sqlite ' === self ::$ db_type ) {
12831286 return ;
12841287 }
1285- $ dbname = self ::$ db_settings ['dbname ' ];
1286- self ::run_sql ( self ::$ mysql_binary . ' --no-defaults ' , [ 'execute ' => "DROP DATABASE IF EXISTS $ dbname " ] );
1288+ $ dbname = self ::$ db_settings ['dbname ' ];
1289+ $ ssl_flag = 'mariadb ' === self ::$ db_type ? ' --ssl-verify-server-cert ' : '' ;
1290+ self ::run_sql ( self ::$ mysql_binary . ' --no-defaults ' . $ ssl_flag , [ 'execute ' => "DROP DATABASE IF EXISTS $ dbname " ] );
12871291 }
12881292
12891293 /**
12901294 * @param string $command
1291- * @param array<string, string > $assoc_args
1295+ * @param array<string, mixed > $assoc_args
12921296 * @param string $path
12931297 * @return Process
12941298 */
@@ -1590,7 +1594,8 @@ public function install_wp( $subdir = '', $version = '' ): void {
15901594 if ( 'sqlite ' === self ::$ db_type ) {
15911595 copy ( "{$ install_cache_path }.sqlite " , "$ run_dir/wp-content/database/.ht.sqlite " );
15921596 } else {
1593- self ::run_sql ( self ::$ mysql_binary . ' --no-defaults ' , [ 'execute ' => "source {$ install_cache_path }.sql " ], true /*add_database*/ );
1597+ $ ssl_flag = 'mariadb ' === self ::$ db_type ? ' --ssl-verify-server-cert ' : '' ;
1598+ self ::run_sql ( self ::$ mysql_binary . ' --no-defaults ' . $ ssl_flag , [ 'execute ' => "source {$ install_cache_path }.sql " ], true /*add_database*/ );
15941599 }
15951600 } else {
15961601 $ this ->proc ( 'wp core install ' , $ install_args , $ subdir )->run_check ();
@@ -1604,7 +1609,8 @@ public function install_wp( $subdir = '', $version = '' ): void {
16041609 $ mysqldump_binary = Utils \force_env_on_nix_systems ( $ mysqldump_binary );
16051610 $ help_output = shell_exec ( "{$ mysqldump_binary } --help " );
16061611 $ support_column_statistics = false !== strpos ( $ help_output , 'column-statistics ' );
1607- $ command = "{$ mysqldump_binary } --no-defaults --no-tablespaces " ;
1612+ $ ssl_flag = 'mariadb ' === self ::$ db_type ? ' --ssl-verify-server-cert ' : '' ;
1613+ $ command = "{$ mysqldump_binary } --no-defaults {$ ssl_flag } --no-tablespaces " ;
16081614 if ( $ support_column_statistics ) {
16091615 $ command .= ' --skip-column-statistics ' ;
16101616 }
0 commit comments