2016-05-19 13 views
5

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

2

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.)

+0

Quindi posso presumere che Percona e MariaDB riportino sempre i loro nomi e MySQL agisca in modo diverso qui? – Quamis

+1

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. –

+0

Ha senso, grazie – Quamis

2

È possibile ottenere informazioni specifiche con:

SHOW VARIABLES LIKE '%vers%' 

version e version_comment sono molto specifici.

+0

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

+0

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

+0

Sembra così, l'esempio da http://dev.mysql.com/doc/refman/5.7/en/show-variables.html afferma 'Distribuzione di origine'. – Quamis

Problemi correlati