@@ -2205,18 +2205,28 @@ sub mysql_setup {
22052205 elsif ( -r " /etc/psa/.psa.shadow" and $doremote == 0 ) {
22062206
22072207 # It's a Plesk box, use the available credentials
2208- $mysqllogin =
2209- " $defaults_options -u admin -p"
2210- . execute_system_command(" cat /etc/psa/.psa.shadow" );
2208+ my $psa_pass = execute_system_command(" cat /etc/psa/.psa.shadow" );
2209+ chomp ($psa_pass );
2210+ $psa_pass =~ s / '/ '\\ ''/ g ;
2211+ $mysqllogin = " $defaults_options -u admin -p'$psa_pass '" ;
22112212 my $loginstatus =
22122213 execute_system_command(" $mysqladmincmd $mysqllogin ping" );
22132214 unless ( $loginstatus =~ / mysqld is alive/ ) {
22142215
22152216 # Plesk 10+
2216- $mysqllogin =
2217- " $defaults_options -u admin -p"
2218- . execute_system_command(
2217+ my $plesk_pass = execute_system_command(
22192218 " /usr/local/psa/bin/admin --show-password" );
2219+ chomp ($plesk_pass );
2220+
2221+ # Plesk Obsidian 18.0.76.5+ no longer supports --show-password
2222+ if ($plesk_pass =~ / no longer supported/i || $plesk_pass =~ / --get-login-link/i ) {
2223+ badprint
2224+ " Attempted to use login credentials from Plesk and Plesk 10+, but they failed." ;
2225+ exit 1;
2226+ }
2227+
2228+ $plesk_pass =~ s / '/ '\\ ''/ g ;
2229+ $mysqllogin = " $defaults_options -u admin -p'$plesk_pass '" ;
22202230 $loginstatus =
22212231 execute_system_command(" $mysqladmincmd $mysqllogin ping" );
22222232 unless ( $loginstatus =~ / mysqld is alive/ ) {
@@ -2241,7 +2251,8 @@ sub mysql_setup {
22412251 $mysqlpass =~ s / passwd=// ;
22422252 $mysqlpass =~ s / [\r\n ]// ;
22432253
2244- $mysqllogin = " $defaults_options -u $mysqluser -p$mysqlpass " ;
2254+ $mysqlpass =~ s / '/ '\\ ''/ g ;
2255+ $mysqllogin = " $defaults_options -u $mysqluser -p'$mysqlpass '" ;
22452256
22462257 my $loginstatus = execute_system_command(" mysqladmin $mysqllogin ping" );
22472258 unless ( $loginstatus =~ / mysqld is alive/ ) {
0 commit comments