--- doc/install/linux/install.pl 2016/08/09 15:20:45 1.37 +++ doc/install/linux/install.pl 2017/05/26 02:18:11 1.42 @@ -72,7 +72,7 @@ if (!open(LOG,">>loncapa_install.log")) &mt('Stopping execution.')."\n"; exit; } else { - print LOG '$Id: install.pl,v 1.37 2016/08/09 15:20:45 raeburn Exp $'."\n"; + print LOG '$Id: install.pl,v 1.42 2017/05/26 02:18:11 raeburn Exp $'."\n"; } # @@ -454,7 +454,7 @@ sub check_mysql_running { $proc_owner = 'mysql'; $use_systemctl = 1; } - if ($1 >= 22) { + if ($1 >= 19) { $mysqldaemon ='mariadb'; } } elsif ($distro =~ /^(?:centos|rhes|scientific)(\d+)/) { @@ -467,6 +467,8 @@ sub check_mysql_running { } elsif ($distro =~ /^sles(\d+)/) { if ($1 >= 12) { $use_systemctl = 1; + $proc_owner = 'mysql'; + $process = 'mysqld'; } } elsif ($distro =~ /^suse(\d+)/) { if ($1 >= 13) { @@ -577,7 +579,7 @@ sub chkconfig { $uses_systemctl{'memcached'} = 1; $uses_systemctl{'cups'} = 1; } - if ($version >= 22) { + if ($version >= 19) { $daemon{'mysql'} = 'mariadb'; } } elsif ($distro =~ /^(?:centos|rhes|scientific)(\d+)/) { @@ -1786,14 +1788,28 @@ CREATE TABLE IF NOT EXISTS metadata (tit sub setup_mysql_permissions { my ($dbh,$has_pass,@mysql_lc_commands) = @_; - my ($mysqlversion,$mysqlsubver) = &get_mysql_version(); - my ($usesauth,@mysql_commands); - if (($mysqlversion > 5.7) || (($mysqlversion == 5.7) && ($mysqlsubver > 5))) { + my ($mysqlversion,$mysqlsubver,$mysqlname) = &get_mysql_version(); + my ($usesauth,$hasauthcol,@mysql_commands); + if ($mysqlname =~ /^MariaDB/i) { + if ($mysqlversion >= 10.2) { + $usesauth = 1; + } elsif ($mysqlversion >= 5.5) { + $hasauthcol = 1; + } + } else { + if (($mysqlversion > 5.7) || (($mysqlversion == 5.7) && ($mysqlsubver > 5))) { + $usesauth = 1; + } elsif (($mysqlversion >= 5.6) || (($mysqlversion == 5.5) && ($mysqlsubver >= 7))) { + $hasauthcol = 1; + } + } + if ($usesauth) { @mysql_commands = ("INSERT user (Host, User, ssl_cipher, x509_issuer, x509_subject) VALUES('localhost','www','','','')", - "ALTER USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); - $usesauth = 1; + "ALTER USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); + } elsif ($hasauthcol) { + @mysql_commands = ("INSERT user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www',password('localhostkey'),'','','','');"); } else { - @mysql_commands = ("INSERT user (Host, User, Password) VALUES('localhost','www',password('localhostkey'));"); + @mysql_commands = ("INSERT user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject) VALUES('localhost','www',password('localhostkey'),'','','');"); } if ($mysqlversion < 4) { push (@mysql_commands," @@ -1886,17 +1902,17 @@ sub new_mysql_rootpasswd { } sub get_mysql_version { - my ($version,$subversion); + my ($version,$subversion,$name); if (open(PIPE," mysql -V |")) { my $info = ; chomp($info); close(PIPE); - ($version,$subversion) = ($info =~ /(\d+\.\d+)\.(\d+)[\-\w]*,/); + ($version,$subversion,$name) = ($info =~ /(\d+\.\d+)\.(\d+)\-?(\w*),/); } else { print &mt('Could not determine which version of MySQL is installed.'). "\n"; } - return ($version,$subversion); + return ($version,$subversion,$name); } ###########################################################