Páginas

viernes, 25 de octubre de 2019

Script para comprobar conexión a MySQL con el cliente de PHP


Script para comprobar de forma sencilla si una máquina tiene conectividad con una BBDD MySQL o MariaDB.

Requisitos:

* php-client

Copiar el siguiente contenido dentro de un script test_mysql.php y ejecutarlo con php test_myslq.php en línea de comandos.


<?php
$err_level = error_reporting(0);
function usage() {
print "
Usage: php test_mysql.php [OPTION]... [FILE]...

Options:
  -d  DB name
  -u  username
  -p  password
  -H  DB host
  -P  Port of DB (optional 3306 by default)
  -h  help
";
exit;
}
$options = getopt("d:u:p:H:P:h");
$dbport = $dbname = $dbuser = $dbpass = $dbhost = '';
if (isset($options['h'])) usage();
$dbport = ( !isset($options['P']) ) ? 3306 : $options['P'];
unset ($options['h']);
unset ($options['P']);
if ( count($options) <  4 ) usage();
foreach ( $options as $optionName => $optionValue ) 
{
    switch ( $optionName ) 
    {
        case 'd':
            $dbname = $optionValue;
            break;
        case 'u':
            $dbuser = $optionValue;
            break;
        case 'p': 
            $dbpass = $optionValue;
            break;
        case 'H':
            #$dbhost = $optionValue.":".$dbport;
            $dbhost = $optionValue;
            break;
        default:
            break;
    }
}
$enlace = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname, $dbport);
if (!$enlace) {
    echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
    echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
    echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
    exit;
}
echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos $dbname está correcta." . PHP_EOL;
echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;

mysqli_close($enlace);

Versión en inglés

ssh y el fichero config




~/.ssh/config


Host descriptive_name
    HostName host.domain or IP
    Port 8080 # if it's different to 22 by default
    User root
    ServerAliveInterval 60
    ServerAliveCountMax 10
    ForwardX11 yes # is necessary server configuration
Host tunel-ssh
    HostName hosts.domain or IP
    User userforssh
    ServerAliveInterval 60
    ServerAliveCountMax 10
    DynamicForward 1080 # port on localhost
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%h:%p
Host anotherserver
    HostName anotherserver.domain
    User root
    ServerAliveInterval 60
    ServerAliveCountMax 10
    ProxyCommand nc.openbsd -x localhost %h %p # it's for make ssh through
tunel-ssh


Podemos poner tantas configuraciones como queramos con la única restricción de que los nombres descriptivos no pueden repetirse.

Luego basta con escribir en línea de comandos:

ssh tunel-ssh

y tendremos un tunel ssh a nuestro puerto 1080 de localhost.

ssh descriptive_name

hará un ssh con la parametrización que le hayamos puesto en el fichero config.