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 를 설치하였습니다.
그후 아파치 재시작을 하여도 설정이 변경되지 않던데. 뭘 더 해야 하는지 혹시 알고 계시다면 가르침 부탁합니다.
네 rds는 이번이 처음입니다.
지금 서버에 mysql, mariadb 관련 다 제거하였습니다.
mysqli 를 사용하지 않는다면 문제없이 잘 작동하나 mysqli 를 사용하면 저런 오류가 일어나네요
php-mysqlnd 를 설치해야 하는걸까요?
rds 외부접근 부분은 문제가 없습니다
외부접속이 가능 하다면 딱히 문제가 될 부분은 없습니다.
[보통 서큐리티 그룹 추가를 빼먹어서 연결 안되거든요.]
ci 버전하고 db 설정 부분은 어떻게 되시나요?
phpinfo() 를 찍어 보면 여전히 위 설정처럼 보이네요
mysql 과 mariadb 모두 제거했는데도.. 저걸 수정하는 방법을 모르겠네요 ㅠ
혹시 apache 재부팅을 안하셨다던가... ( ..)
ci : 3.0.6 이며
db 설정은 다 기본으로 되어 있습니다.
dbdriver => mysqli
기본으로 쓰고 있구요
이걸 mysql 로 변경했을시 문제 없습니다,
한가지 예상하는건 제가 버전을 많이 바꾸기도 했고.. 충돌이 일어나는것 같긴하네요
mysql 6 버전을 사용하다 문제가 있어 mariadb5로 변경했다가
aws rds로 변경 했거든요
최초 mysql 과 php7 은 패키지 설치 하지 않고 make 하여 Configure --with-mysqli=/usr/local/mysql/bin/mysql_config
해당 설정이 있는데 mysql 폴더 자체가 지금은 없어요
일단 풀었다고 하니 다행입니다.
다만 autoload 에 넣고 다시 로드해도 오류가 발생 하진 않습니다.
왜냐면 ci 라이브러리 로드는 싱글톤이거든요.
혹시 database만 그런거라면 이슈일지도 모르겠네요.
kaido 님 답변 감사합니다.
위에 해결했다고 했던 댓글은 지웠습니다. 그문제가 아니었는데 제가 착각했던 거네요
문제는 mysql을 지우는 바람에 php 컴파일시 mysql_config 옵션을 주었던게 없어서 문제가 되었었습니다.
mysql 다시 설치하고 해당 위치로 php 재컴파일해서 문제 해결 했습니다!
저도 aws에 maria 사용중입니다만 버전 문제가 걸린적은 없었습니다.
[참고로 저는 yum update 를 주기적으로 계속 하고 있어서 현재 php 7.0.10 이네요. 7.0.1 부터 계속 업데이트 하면서 사용했지만 문제된적은 없었습니다.]
실험 해본결과 maria 를 설치 하지 않아도 rds에 연결 가능 합니다. [다만 콘솔 접근 기능때문에 설치는 합니다.]
rds에 혹시 처음 연결 하시는 것인가요?