Connect with Perl
SingleStoreDB supports the basic Perl drivers for MySQL using the standard DBI and DBM drivers. You may install and configure Perl using any of the supported methods, but you must have the MySQL driver to get Perl to work with SingleStoreDB. You can also use the MariaDB Perl library.
SingleStoreDB supports Kerberos authentication. See Authenticate using Kerberos for more information.
Install Drivers for Perl
The following example installs the Perl drivers with the basic CPAN method:
$ perl -MCPAN -e shell cpan> install DBI cpan> install DBD::mysql
This command installed the following version of DBI and DBD:
perl -MDBI -e 'print $DBI::VERSION."\n"' # 1.642 perl -MDBD::mysql -e 'print $DBD::mysql::VERSION."\n"' # 4.050
Here's a sample script to test connectivity using the installed drivers. The following script connects to a cluster and retrieves some basic information about the cluster.
#!/usr/bin/perl
use strict;
use DBI;
my $host = "<ip_address_or_hostname";
my $database = "information_schema"; my $port = 3306;
my $tablename = "mv_activities";
my $user = "root";
my $pw = "";
my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host",$user, $pw) or die "Cannot connect to MySQL server\n";
my $sql = 'select @@memsql_version';
my $sth = $dbh->prepare($sql);
$sth->execute();
while (my @row = $sth->fetchrow_array) {
print "MemSQL_Version: $row[0] \n";
}
my $sql = 'select count(*) from aggregators';
my $sth = $dbh->prepare($sql);
$sth->execute();
while (my @row = $sth->fetchrow_array) {
print "Aggregators: $row[0] \n";
}
my $sql = 'select count(*) from leaves';
my $sth = $dbh->prepare($sql);
$sth->execute();
while (my @row = $sth->fetchrow_array) {
print "Leaves $row[0] \n";
}
my $sql = 'select variable_name, variable_value from information_schema.global_status where variable_name = "uptime"';
my $sth = $dbh->prepare($sql);
$sth->execute();
while (my @row = $sth->fetchrow_array) {
#print "variable_name $row[0] variable_value $row[1]\n";
print "Cluster has been up for $row[1] seconds! \n";
}
Replace ip_address_or_hostname
in the code above with the IP address or the hostname of your cluster. Here's a sample output:
$ ./show_cluster.pm MemSQL_Version: 6.7.14 Aggregators: 1 Leaves 2 Cluster has been up for 16025 seconds!
Authenticate using Kerberos
The following example shows how to use Kerberos authentication with the script above. Since, the script is compiled locally with CPAN, it works out of the box. Remember to comment out the password line.
#my $pw = ""; #my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host",$user, $pw) or die "Cannot connect to MySQL server\n"; my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host",$user ) or die "Cannot connect to MySQL server\n";
Here's a sample output:
[ec2-user perl]$ klist Ticket cache: KEYRING:persistent:1000:1000 Default principal: tron@LOCALHOST Valid starting Expires Service principal 04/15/2019 23:47:37 04/16/2019 23:31:56 memsql/memsql.localhost@LOCALHOST 04/15/2019 23:31:56 04/16/2019 23:31:56 krbtgt/LOCALHOST@LOCALHOST [ec2-user perl]$ ./show_cluster.pm MemSQL_Version: 6.7.15 Aggregators: 1 Leaves 1 Cluster has been up for 1306 seconds!
DBD-MariaDB Perl Library
SingleStoreDB also supports the MariaDB Perl Library v1.11 (GPLv2).
Binary | URL |
---|---|
Platform independent, includes source code |