2016-05-19 30 views
5

Wie kann ich sagen, ob ein Server, den ich verbinde, Percona oder MySQL oder MariaDB ist? Gibt es einen Standard Weg dies zu tun? Ich verwende derzeit SHOW VERSION, um die Serverversion zu testen, aber ich müsste auch den Servernamen in der App anzeigen, an der ich gerade arbeite.bestimmen, ob mysql oder percona oder mariaDB

Antwort

2

Denken Sie daran, dass "MySQL" das Original ist und die anderen Spinoffs sind. Hier ist ein Code, der wahrscheinlich immer funktioniert:

version_comment REGEXP 'MariaDB' -- > Mariadb 
version_comment REGEXP 'Percona' -- > Percona 
else MySQL 

version_comment über SHOW VARIABLES oder information_schema zugegriffen werden.

@@version ist nicht zuverlässig, weil Percona keine Spur hinterlässt, obwohl ich vermute, dass die '-30.3-' ein Hinweis in 5.5.31-30.3-log ist.

(geprüft I 106 Servern.)

+0

Also kann ich davon ausgehen, dass Percona & MariaDB immer ihre Namen melden und MySQL hier anders agiert? – Quamis

+1

Meine Antwort basiert auf empirischen Beweisen. Basierend auf der Historie ... MySQL ist das Basisprodukt (jetzt im Besitz von Oracle), weshalb es keinen Grund gibt, in den Einstellungen spezifisch zu sein. Die anderen sind Spin-offs, so dass sie Bedarf an solchen fühlen. –

+0

Macht Sinn, thx – Quamis

2

Sie können mit spezifischen Informationen erhalten:

SHOW VARIABLES LIKE '%vers%' 

version und version_comment sind sehr spezifisch.

+0

auf meinem Dev-Server, 'version_comment = (Ubuntu)', 'version = 5.5.47-0ubuntu0.14.04.1'. Keine Spur von "MySQL" String irgendwo. Ich habe geschaut, obwohl alle 'SHOW VARIABLES' Liste und nichts relevantes kam – Quamis

+0

Dies könnte dann Verteilung spezifisch sein. Auf Fedora sehe ich "MySQL Community Server (GPL)" oder "MariaDB Server" für die beiden Instanzen, mit denen ich teste. – tadman

+0

Scheint so, das Beispiel von http://dev.mysql.com/doc/refman/5.7/en/show-variables.html gibt 'Source distribution' an. – Quamis