연결된 데이터베이스가 MariaDB인지 MySQL인지 어떻게 알 수 있습니까?
내 PHP 애플리케이션에는 "MySQL 5.7+ 또는 MariaDB 10.2+"를 포함한 요구 사항이 있습니다.다음 중 어느 것이 만족스러운지 어떻게 알 수 있습니까?
버전 번호를 비교하는 방법과 데이터베이스에서 버전 번호를 가져오는 방법은 알고 있지만, 어떤 데이터베이스인지 결정하는 방법은 모릅니다.
나는 노력했다.
select version()
버전 번호와 서버 OS 정보만 반환되며 데이터베이스 종류는 반환되지 않습니다.
조사하다VARIABLES
위해서aria_block_size
MySQL도 Percona도 아닌 MariaDB의 일부 버전을 의미합니다.(적어도 가까운 미래에는)
의 시작 부분version
:
- "5.7" 및 "8.0"은 MySQL 또는 Percona를 의미하며 MariaDB를 의미하지는 않습니다.
- "10.2"는 MariaDB를 의미합니다. MySQL과 Percona가 오랫동안 "10"에 도달할 가능성은 낮습니다.
어떤 기능이 필요하십니까?Percona가 MySQL에서 나오기 전에 MariaDB 10.2에서 무언가를 개조할 가능성이 있습니다.
할 때도version
이5.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
'programing' 카테고리의 다른 글
Vue-Router: 페이지 새로 고침 후 로그인 페이지로 돌아가는 보기 (0) | 2022.11.26 |
---|---|
enumerate()는 무슨 뜻입니까? (0) | 2022.11.26 |
항목이 JavaScript 배열에 있는지 확인하는 가장 좋은 방법은 무엇입니까? (0) | 2022.11.26 |
약속.all: 해결된 값의 순서 (0) | 2022.10.29 |
1234 == '1234 검정'이 참으로 평가되는 이유는 무엇입니까? (0) | 2022.10.29 |