Site icon 지락문화예술공작단

PHP 함수의 mysql 데이터베이스 확장 함수의 고찰

 

PHP 함수의 mysql 데이터베이스 확장 함수의 고찰

PHP에서 지원하는 mysql 함수

 

 

습관

난 몇년동안 리눅스상에서 APM을 설치할때

--with-mysql=/usr/local/mysql
--with-pdo-mysql=/usr/local/mysql (필요시 추가)

형태로 설치한뒤 추가로 mysqli가 필요한 경우 별도의 모듈형태로 mysqli 를 설치해서 사용했다..

특별히 큰 이유가 있었던것은 아니고, 그냥 mysql3 + php4.0 시절부터 그렇게 해왔기 때문에 의례 그렇게 했다는게 맞다.

 

새로운것

헌데 PHP5.3 부터 변경된점중.. mysqlnd 라는것이 있다.

출처 : http://php.net/manual/en/book.mysqlnd.php

위에서 설명한 mysql의 3가지 지원함수의 사용을 위해서

해야 했던 전통적인 방식대신

mysql Native Driver 라는 새로운 방식을 php-5.3 부터 지원하게 되었다고… (솔직히 몰랐다;;;;)

 

라는 장점이 있다…

소스컴파일의 경우 설치되는 프로그램(컴파일된 바이너리 파일을 통칭…)이 설치당시 참조했던 라이브러리에 대한 절대적인 의존성을 갖게 되는데

이렇게 자체드라이버를 사용하게 되면, 적어도 libmysqlclient 에 대해서는 자유로워지게 되는것을 의미한다.

이것이 무엇을 의미하냐고???

바로 mysql5.1 + php5.3(이상)을 쓰다가..

mysql5.5 또는 mariadb10.0 으로 변경을 하더라도 PHP를 재컴파일할 필요가 없게 된다는것!!!!

이리저리 이점이 있기 때문에 앞으로는 mysqlnd 를 사용하기로 전격 결정했다.

 

설치법

기존 mysql, mysqli, pdo-mysql 에 대한 정의 부분은 모두 무시하고
아래 컴파일 옵션을 사용하면된다.

--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \

 

phpinfo

mysqlnd

mysqlnd enabled
Version mysqlnd 5.0.11-dev – 20120503 – $Id: 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $
Compression supported
core SSL supported
extended SSL supported
Command buffer size 4096
Read buffer size 32768
Read timeout 31536000
Collecting statistics Yes
Collecting memory statistics Yes
Tracing n/a
Loaded plugins mysqlnd,debug_trace,auth_plugin_mysql_native_password,
auth_plugin_mysql_clear_password,auth_plugin_sha256_password
API Extensions mysqli,pdo_mysql,mysql

mysql

MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version mysqlnd 5.0.11-dev – 20120503 – $Id: 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $

mysqli

MysqlI Support enabled
Client API library version mysqlnd 5.0.11-dev – 20120503 – $Id: 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0

pdo_mysql

PDO Driver for MySQL enabled
Client API version mysqlnd 5.0.11-dev – 20120503 – $Id: 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $

 

이런식으로다가 mysqlnd 가 활성화된 것을 볼 수 있다.

Exit mobile version