컴퓨터 / Computer

PHP Warning: mysqli_connect(): Headers and client library minor versi…

PHP-logo.svg 






 PHP Warning:  mysqli_connect(): Headers and client library minor version mismatch. Headers:50173 Library:50312


사용중인 php와 mysql(혹은 mariadb) 사이에 버전이 일치하지 않아 위와 같이 오류 메시지를 낼때가 있다. 사실 웹 서버 동작에는 그리 지장이 없기 때문에 무시하고 지나갈 수도 있다. 그런데 웹 서버 로그보다 저 오류 로그가 더 크면 사실 걱정을 좀 해야 한다. 그리고 그런 상황에 처했으니 이를 어떻게든 해결해야 한다.


자료를 많이 검색해 봤는데, php 와 mysql을 연결할때 mysqli 대신에 mysqlnd(mysql native driver)를 쓰라고 나온다. 일반 사용자들이 무슨 힘이 있겠는가. 앞으로 계속 mysqlnd를 쓰라고 하니 쓸 수 밖에. 그런데 이게 yum을 통해서 설치하면 된다고 하는데 그게 또 잘 안된다. 왜 안되는가 살펴봤더니 아래와 같은 환경이어서 그렇더라.



 CentOS 6.x 

 php 5.3 이하 


mysql은 알아서 잘 업데이트가 되는데 php는 보통 OS 설치할때 한번 설치하면 웬만해서는 잘 바꾸지 않는다. 일단 제일 위 오류 메시지가 나오면 쉘에서 아래와 같이 입력해 보자.


 php -i | grep 'Client API' 


위 CentOS와 php 환경에서는 다음과 같이 나온다.


 Client API version => 5.3.12-MariaDB

 Client API library version => 5.3.12-MariaDB

 Client API header version => 5.1.73

 Client API version => 5.3.12-MariaDB



딱 봐도 Client API header version이 낮다. 저걸 바꿔 주려면 mysqlnd를 설치하는 수 밖에 없다.



1차 시도 


  yum erase php-mysql

  rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

  rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

  yum install php-mysqlnd


왜 1차 시도라고 썼겠는가. 저렇게 하면 설치가 안된다. yum이  php-mysqlnd를 찾지 못한다.


2차 시도 

  yum --enablerepo=remi,remi-test install php-mysqlnd


아. 2차 시도 시에는 php 5.4 버전이 설치된다! 이래도 되나? 어쨌건 성공적으로 설치했다. 그리고 중요한 마무리. 이렇게 설치를 했을 경우 mysql과 httpd(주로 apache)를 다시 시작해야 한다.


(그리고 phpmyadmin도 다시 설치해야 한다.)




Comments

남녀공용 레터링 자수볼캡 데일리 심플 커플 야구모자
YB_G88854 가죽크로스백(중)
남자 9부 우븐카고바지 냉감바지 쿨링바지 조거팬츠
(챠밍)보정 플라워 올인원 밑면 스냅버튼 쉐이퍼
스마트폰 아이패드 태블릿 초미세 정전식 터치펜
DocuPrint P265dw 재생카트리지 대용량 검정 2600매
LG V50 IS 투명 젤리 케이스 V500
갤럭시 노트20 빨강머리앤v1 wk플립 N981 케이스
마이로맨스 디퓨져 방향제
이케아 GLASIG글라시그 미니양초홀더 유리5x5cm 5개입
이케아 FINSMAK 핀스마크 미니 양초 캔들 유리 홀더
복주머니 파우치 외국인 선물 기념품
브롤스타즈 옥타 가벼운 진공스텐수저
양변기부속품 측면버튼형 세트 무소음 좌변기 부품
코카콜라 제로 업소용 1.25L 12PET
이코노미 런치 플러스 혼합 캔 24개입

학습 교재용 원형자석 지름20mm두께3mm (200개입)
칠성상회
이케아 UNDERHALLA 운데르홀라 알파벳 숫자 카드
바이플러스

맨위로↑