[php] PDOException“드라이버를 찾을 수 없습니다”

방금 Apache, MySQL 및 PHP와 함께 Debian Lenny를 설치했으며 PDOException을 받고 could not find driver있습니다.

이것은 특정 코드 줄입니다.

$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS)

DB_HOST, DB_NAME, DB_USER, 그리고 DB_PASS내가 정의했다고 상수이다. 프로덕션 서버 및 이전 Ubuntu Server 설정에서 제대로 작동합니다.

PHP 설치와 관련이 있습니까?

인터넷을 검색해도 도움이되지는 않았지만 전문가 교환 및 예제 만 있으면되지만 해결책은 없습니다.



답변

pdo_mysql이라는 모듈이 필요합니다. phpinfo ()에서 다음을 찾고,

pdo_mysql

PDO Driver for MySQL, client library version => 5.1.44


답변

코드의 dsn은 mysql 드라이버와 연결을 시도하고 있음을 나타냅니다. 오류 메시지는이 드라이버를 사용할 수 없음을 나타냅니다.

서버에 mysql 확장이 설치되어 있는지 확인하십시오.

우분투 / 데비안에서는 다음을 사용하여 패키지를 확인하십시오.

dpkg --get-selections | grep php | grep mysql

php5-mysql 패키지가 없으면 설치하십시오.

우분투 / 데비안에서는 다음을 사용할 수 있습니다.

  • PHP5 : sudo apt-get install php5-mysql
  • PHP7 : sudo apt-get install php7.0-mysql

마지막으로, 작동하려면 웹 서버를 다시 시작해야합니다.

  • 아파치 : sudo /etc/init.d/apache2 restart
  • Nginx : sudo /etc/init.d/nginx restart

답변

업데이트 : 최신 버전 php-sqlite3대신 패키지를 사용해야 합니다 php5-sqlite. 최신 우분투 버전을 사용하는 경우 이것을 사용하십시오.

sudo apt-get install sqlite php-sqlite3

질문에 대한 원래 답변은 다음과 같습니다.

sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart

phpinfo ()가 pdo_sqlite 줄 (내 경우에는 우분투 서버)을 표시하지 않으면 위의 줄을 실행하면됩니다.


답변

PHP 7.0이 설치된 최신 버전의 Ubuntu의 경우 php-mysql패키지를 얻을 수 있습니다 .

sudo apt-get install php-mysql

그런 다음 서버를 다시 시작하십시오.

sudo service apache2 restart


답변

나는 같은 문제가 있었다. 솔루션은 OS에 따라 다릅니다. 내 경우에는 데비안이 있으므로 해결해야합니다.

  • 내 PHP 버전을 ( php5에서 php7로 ) 업데이트했습니다.
  • php-mysql 및 php7.0-mysql 설치

    apt-get install php-mysql
    apt-get install php7.0-mysql
  • php.ini/etc/php/7.0/apache2/php.ini에서 위치를 편집했습니다.

    uncomment the line : extension=php_pdo_mysql.dll
  • 그런 다음 아파치를 다시 시작하십시오.

    service apache2 restart

이것은 내 문제를 해결


답변

내 Windows 컴퓨터에서 php.ini의 확장 디렉토리에 대한 절대 경로를 제공해야했습니다.

extension_dir = "c:\php5\ext"


답변

우분투에서는 그냥 실행하십시오.

sudo apt-get install php5-mysql