2016-06-08 2 views
0

php5-mysqlnd를 설치하면 php5-mysql이 제거됩니다. php5-mysql을 설치하면 php5-mysqlnd가 제거되고 mysqli를 사용할 수 있습니다. 그러나, 나는 유래에 다른 답변을 바탕으로이 오류우분투에 mysqlnd를 설치 한 후 mysqli가 작동하지 않습니다.

mysqli_real_connect(): Headers and client library minor version mismatch. Headers:50541 Library:50627 

을받은 것, 나는이 문제를 해결하기 위해 PHP5-mysqlnd를 설치해야합니다. 이주기를 벗어나는 방법?

UPDATE 1 : 확장을 추가 할 수

  • 시도 = mysqlnd.so php.ini 파일에
  • 은 bash는 php5enmod의 mysqli와 php5enmod의 mysqlnd는
  • mysqli 여전히 설치 후 작동하지 않습니다
  • 시도로 PHP5를-mysqlnd apt-get
+1

동시에 설치할 수는 없습니다. [PHP 문서는 mysqlnd 사용을 권장합니다.] (http://php.net/manual/en/mysqlinfo.library.choosing.php). – Mike

답변

-1

아마도 mysqlnd 확장을 활성화해야 할 것입니다. 나는 최근이 문제에 달려 내 php.ini 파일의 맨 아래에 다음 줄을 추가하여, 그것을 고정 (PHP5-mysqlnd를 설치 한 후 졌 있었다 mysqli 모든 참조) :

extension=mysqlnd.so 

당신의 위치를 ​​찾을 수 있습니다 phpinfo()의 출력에서 ​​php.ini.

또한 변경 사항을 적용하려면 웹 서버를 다시 시작해야합니다.

+0

Mysqlnd는 확장자가 아닙니다. –

+0

@YourCommonSense 사용자 공간 API를 내 보내지 않고도 여전히 대답이 도움이된다고 생각하지 않습니다. – johannes

+0

안녕하세요, 그 라인을 추가하고 작동하지 않습니다. 또한 mysql.so와 mysqli.so의 줄을 주석 처리했지만 작동하지 않습니다. –

0

mysqli_real_connect() : 헤더와 클라이언트 라이브러리 부 버전이 일치하지 않습니다. 헤더 : 50541 라이브러리 : 50627

오류 메시지는 시스템에 버전 충돌이 있음을 의미합니다. "libmysql"이 들어있는 패키지와 다른 버전을 사용하면서 해당 라이브러리에 링크하는 "php5-mysql"패키지를 설치했습니다. 이것은 Ubuntu에서 패키징 할 때 버그가 있거나 (다른 것 같지 않음) 다른 패키지 소스를 엉망으로 만든다는 것을 나타냅니다. 정확히 말하자면, PHP는 5.6이 설치된 반면 libmysql 5.5를 사용할 것이라고 생각합니다.

어쨌든, 질문의 다른 부분 : php5-mysqlnd와 php5-mysql은 모두 다른 MySQL 사용자 공간 API 라이브러리 (mysql, mysqli 및 pdo_mysql)를 포함합니다. 하나의 패키지는 libmysql을 사용하는 "전통적인"패키지이고, 다른 모듈은 myslqnd를 사용하는 "현대"모듈입니다. 차이점을 설명하는 문서는 http://php.net/manual/en/mysqlinfo.library.choosing.php에 있습니다. 약식은 다음과 같습니다 : 매우 구체적인 요구 사항이없는 한 mysqlnd를 사용하십시오 (예 : libmysld 사용, 끝에 d가 있음). 사용하지 않으려는 것이 무엇인지 모르는 경우에는 don

:를 설치 php5-mysqlnd이 우분투에 의해 발생할 수 있습니다를 설치하지만, 모듈을 활성화하지 후 더 mysqli이없는 경우이 우분투이 시도 php5enmod 도구를 가지고위한 '는 t는 사용 mysqlnd) 이제

당신을 혼란하게

php5enmod mysqli 
+0

도움을 주셔서 대단히 감사합니다. 그러나 작동하지 않습니다. 다른 방법이 있습니까? 또는 어떤 정보가 있으면이 버그를 해결할 수 있습니까? –