CI 묻고 답하기

제목 ci mysqli 사용 관련 오류 질문입니다.
카테고리 CI 2, 3
글쓴이 진이 작성시각 2016/09/12 15:47:52
댓글 : 10 추천 : 0 스크랩 : 0 조회수 : 16655   RSS

OS centos7

php 7.0.4

입니다.

Message: mysqli::real_connect(): Headers and client library minor version mismatch. Headers:50630 Library:50550

Filename: mysqli/mysqli_driver.php

Line Number: 202

 

해당 오류를 검색해보니 Client API library version 와 Client API header version 가 일치하지 않아 일어나는 오류라고 들었는데요

 

phpinfo() 찍어보니

 

Client API library version 5.5.50-MariaDB
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
Client API header version 5.6.30

 

으로 설정이 되어 있더라고요

근데 제가 궁금한건 전 database 를 localhost 쓰지 않고 아마존 rds 를 이용해 따로 사용하고 있습니다.

그런데도 이런 오류가 나서.. 이걸 꼭 맞춰 줘야 하나요?

그리고 이걸 맞추려고 로컬에 5.5 마리아디비가 있는 관계로 php-mysqlnd 5.5 를 설치하였습니다.

그후 아파치 재시작을 하여도 설정이 변경되지 않던데. 뭘 더 해야 하는지 혹시 알고 계시다면 가르침 부탁합니다.

 다음글 ci hook 사용중 (17)
 이전글 안녕하세요 서브쿼리 관련해서 질문이 있습니다ㅠ (1)

댓글

kaido / 2016/09/12 16:02:57 / 추천 0

저도 aws에 maria 사용중입니다만 버전 문제가 걸린적은 없었습니다.

[참고로 저는 yum update 를 주기적으로 계속 하고 있어서 현재 php 7.0.10 이네요. 7.0.1 부터 계속 업데이트 하면서 사용했지만 문제된적은 없었습니다.]

실험 해본결과 maria 를 설치 하지 않아도 rds에 연결 가능 합니다. [다만 콘솔 접근 기능때문에 설치는 합니다.]

 

rds에 혹시 처음 연결 하시는 것인가요?

진이 / 2016/09/12 17:08:33 / 추천 0

네 rds는 이번이 처음입니다.

지금 서버에 mysql, mariadb 관련 다 제거하였습니다.

mysqli 를 사용하지 않는다면 문제없이 잘 작동하나 mysqli 를 사용하면 저런 오류가 일어나네요

php-mysqlnd 를 설치해야 하는걸까요?

rds 외부접근 부분은 문제가 없습니다

 

kaido / 2016/09/12 17:11:48 / 추천 0

외부접속이 가능 하다면 딱히 문제가 될 부분은 없습니다.

[보통 서큐리티 그룹 추가를 빼먹어서 연결 안되거든요.]

 

ci 버전하고 db 설정 부분은 어떻게 되시나요?

진이 / 2016/09/12 17:13:36 / 추천 0

phpinfo() 를 찍어 보면 여전히 위 설정처럼 보이네요

mysql 과 mariadb 모두 제거했는데도.. 저걸 수정하는 방법을 모르겠네요 ㅠ

kaido / 2016/09/12 17:14:35 / 추천 0

혹시 apache 재부팅을 안하셨다던가... ( ..)

 

진이 / 2016/09/12 17:16:03 / 추천 0

ci : 3.0.6 이며

db 설정은 다 기본으로 되어 있습니다.

dbdriver => mysqli

기본으로 쓰고 있구요

이걸 mysql 로 변경했을시 문제 없습니다,

 

진이 / 2016/09/12 17:16:29 / 추천 0
httpd 재시작도 물론 했구요.. 서버를 재시작 해야하나;
진이 / 2016/09/12 17:20:41 / 추천 0

한가지 예상하는건 제가 버전을 많이 바꾸기도 했고.. 충돌이 일어나는것 같긴하네요

mysql 6 버전을 사용하다 문제가 있어 mariadb5로 변경했다가

aws rds로 변경 했거든요

 

최초 mysql 과 php7 은 패키지 설치 하지 않고 make 하여  Configure --with-mysqli=/usr/local/mysql/bin/mysql_config

해당 설정이 있는데 mysql 폴더 자체가 지금은 없어요

 

kaido / 2016/09/13 09:38:50 / 추천 0

일단 풀었다고 하니 다행입니다.

다만 autoload 에 넣고 다시 로드해도 오류가 발생 하진 않습니다.

왜냐면 ci 라이브러리 로드는 싱글톤이거든요.

 

혹시 database만 그런거라면 이슈일지도 모르겠네요.

진이 / 2016/09/13 14:41:48 / 추천 0

kaido 님 답변 감사합니다.

위에 해결했다고 했던 댓글은 지웠습니다. 그문제가 아니었는데 제가 착각했던 거네요

문제는 mysql을 지우는 바람에 php 컴파일시 mysql_config 옵션을 주었던게 없어서 문제가 되었었습니다.

mysql 다시 설치하고 해당 위치로 php 재컴파일해서 문제 해결 했습니다!