Come posso sapere se un server a cui mi sto collegando è Percona o MySQL o MariaDB? Esiste un modo standard per farlo? Attualmente sto usando SHOW VERSION
per testare la versione del server, ma avrei anche bisogno di visualizzare il nome del server nell'app su cui sto lavorando.determinare se mysql o percona o mariaDB
risposta
Ricordare che "MySQL" è l'originale e gli altri sono spinoff. Ecco un po 'di codice che funziona probabilmente sempre:
version_comment REGEXP 'MariaDB' -- > Mariadb
version_comment REGEXP 'Percona' -- > Percona
else MySQL
version_comment
si può accedere tramite SHOW VARIABLES
o information_schema
.
@@version
non è affidabile perché Percona non lascia alcun indizio, anche se sospetto che il '-30.3-' sia un indizio in 5.5.31-30.3-log
.
(ho controllato 106 server.)
È possibile ottenere informazioni specifiche con:
SHOW VARIABLES LIKE '%vers%'
version
e version_comment
sono molto specifici.
sul mio server dev, 'version_comment = (Ubuntu)', 'version = 5.5.47-0ubuntu0.14.04.1'. Nessuna traccia di stringa "MySQL" ovunque. Ho esaminato tutto l'elenco 'SHOW VARIABLES' e non è apparso nulla di rilevante – Quamis
Questo potrebbe essere specifico per la distribuzione. Su Fedora vedo "MySQL Community Server (GPL)" o "MariaDB Server" per le due istanze con cui sto testando. – tadman
Sembra così, l'esempio da http://dev.mysql.com/doc/refman/5.7/en/show-variables.html afferma 'Distribuzione di origine'. – Quamis
Quindi posso presumere che Percona e MariaDB riportino sempre i loro nomi e MySQL agisca in modo diverso qui? – Quamis
La mia risposta si basa su prove empiriche. Basato sulla cronologia ... MySQL è il prodotto di base (ora di proprietà di Oracle), quindi non ha motivo di essere specifico nelle impostazioni. Gli altri sono spinoff, quindi sentono il bisogno di farlo. –
Ha senso, grazie – Quamis