programing

연결된 데이터베이스가 MariaDB인지 MySQL인지 어떻게 알 수 있습니까?

sourcetip 2022. 11. 26. 13:26
반응형

연결된 데이터베이스가 MariaDB인지 MySQL인지 어떻게 알 수 있습니까?

내 PHP 애플리케이션에는 "MySQL 5.7+ 또는 MariaDB 10.2+"를 포함한 요구 사항이 있습니다.다음 중 어느 것이 만족스러운지 어떻게 알 수 있습니까?

버전 번호를 비교하는 방법과 데이터베이스에서 버전 번호를 가져오는 방법은 알고 있지만, 어떤 데이터베이스인지 결정하는 방법은 모릅니다.

나는 노력했다.

select version()

버전 번호와 서버 OS 정보만 반환되며 데이터베이스 종류는 반환되지 않습니다.

조사하다VARIABLES위해서aria_block_sizeMySQL도 Percona도 아닌 MariaDB의 일부 버전을 의미합니다.(적어도 가까운 미래에는)

의 시작 부분version:

  • "5.7" 및 "8.0"은 MySQL 또는 Percona를 의미하며 MariaDB를 의미하지는 않습니다.
  • "10.2"는 MariaDB를 의미합니다. MySQL과 Percona가 오랫동안 "10"에 도달할 가능성은 낮습니다.

어떤 기능이 필요하십니까?Percona가 MySQL에서 나오기 전에 MariaDB 10.2에서 무언가를 개조할 가능성이 있습니다.

할 때도version5.1.53-rel11.7-log또는5.5.35-0ubuntu0.12.04.2-log첫 번째 부분은 MySQL/MariaDB/Percona 버전의 중요한 부분을 나타냅니다.

Percona 버전은 다음과 같습니다.5.5.31-30.3-log,5.6.30-76.3-56-log,5.6.19-67.0-log--처음 3개 뒤에 2개 또는 3개의 숫자가 추가되어 있는 것에 주의해 주세요.

MariaDB는 항상 다음과 같이 시작합니다.N.N.N-MariaDB

Oracle의 MySQL은 다음과 같이 시작합니다.N.N.N, 단, 로 계속 될 수 있습니다.-enterprise(유료판),-community(무료 버전),-0ubuntu0(포트: Ubuntu),-Debian,기타.

MariaDB: 5.1, 5.2, 5.3, 5.4, 5.5, 10.0, 10.1, 10.2, 10.3, 10.4, 10.5
Oracle 및 Percona: 5.1, 5.5, 5.6, 5.7, 8.0

8.0 사이클은 이제 시작입니다.이는 곧 5.6이 종료되고 5.7의 수명이 얼마 남지 않았다는 것을 의미하지만, 새로워지지는 않을 것입니다.

'메이저' 릴리즈에 대한 설명
MySQL(및 Percona)의 경우 5.1, 5.5, 5.6, 5.7, 8.0은 "major"이며 연속되지 않습니다.
MariaDB의 경우: 5.1, 5.2, 5.3, 5.4, 5.5, 10.0, 10.1, 10.2, 10.3, 10.4, 10.5.

$info = $pdo->query("SHOW VARIABLES like '%version%'")->fetchAll(PDO::FETCH_KEY_PAIR);
$server_vendor  = strtok($info['version_comment']," ");
$server_version = $info['version'];

이를 php 앱 내에서 실행하려고 할 경우 PHP 7에서는 mysqli_get_server_info 또는 < php 7에서는 mysql_get_Server_info를 사용할 수 있습니다.

    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password");

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    /* print server version */
    printf("Server version: %s\n", mysqli_get_server_info($link));

    /* close connection */
    mysqli_close($link);
    ?>

돌아온다

서버 버전: 5.5.5-10.1.23-MariaDB-9+deb9u1

php 7 http://php.net/manual/en/mysqli.get-server-info.php ph 5 & < http://php.net/manual/en/function.mysql-get-server-info.php

언급URL : https://stackoverflow.com/questions/43611296/how-can-i-detect-whether-connected-database-is-mariadb-or-mysql

반응형