Caused by pdoexception could not find driver yii2 ошибка
Я только что установил Debian Lenny с Apache, MySQL и PHP, и я получаю исключение 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?
Поиск в интернете не помог, все, что я получаю, это обмен экспертами и примеры, но никаких решений.
Посмотрите в вашем php.ini' file and uncomment расширении = php_pdo_mysql.dll . The path to your php.ini` файл можно найти, посмотрев на ваш phpinfo ().
К вашему сведению для будущих читателей, если вы получите эту ошибку и GoDaddy ваш хост, войдите в свою учетную запись администратора. Детали хостинга-> Языки программирования. Обновите версию PHP до последней версии или хотя бы 5,4
Для кого это может касаться: если вы используете php 7.1+ в докере, вы можете docker exec войти в контейнер и запустить docker-php-ext-install pdo pdo_mysql .
Вам нужен модуль с именем pdo_mysql. Ищете следующий в phpinfo (),
Убедитесь, что на вашем сервере установлено расширение mysql.
В Ubuntu / Debian вы проверяете пакет с помощью:
Установите пакет php5-mysql, если у вас его нет.
В Ubuntu / Debian вы можете использовать:
- PHP5: sudo apt-get install php5-mysql
- PHP7: sudo apt-get install php7.0-mysql
Наконец, чтобы он заработал, вам нужно перезагрузить веб-сервер:
- Apache: sudo /etc/init.d/apache2 restart
- Nginx: sudo /etc/init.d/nginx restart
Потратил почти всю ночь, пытаясь взломать это, пока я не увидел ваш ответ. Все сделал правильно, но забыл перезапустить apache.
Обновление : более новые версии должны использовать php-sqlite3 пакет вместо php5-sqlite . Так что используйте это, если вы используете последнюю версию Ubuntu:
Оригинальный ответ на вопрос здесь:
Если ваш phpinfo () не показывает строку pdo_sqlite (в моем случае, на моем сервере Ubuntu), вам просто нужно запустить строки выше, и тогда вы будете в порядке.
@ Andrew, если вы используете pdo_sqlite и не устанавливаете, php5-sqlite вы получаете только PDOException без информации об отсутствующем sqlite и попробуйте установить php5-mysql дважды.
Обратите внимание, что php5-sqlite устарел и может быть недоступен для вашей системы, то есть Ubuntu 16.04. Вместо этого установите php-sqlite3.
@briankip Конечно, если вы пытаетесь подключиться к SQLite, и этот драйвер отсутствует. Но ОП пытается подключиться к MySQL. Установка sqlite могла / не могла решить его проблему.
Для более новых версий Ubuntu с PHP 7.0 вы можете получить php-mysql пакет:
Затем перезапустите ваш сервер:
Я была такая же проблема. Решение зависит от ОС. В моем случае у меня есть Debian, поэтому для его решения:
Установите php-mysql и php7.0-mysql
Я php.ini изменил свое местоположение в /etc/php/7.0/apache2/php.ini
Затем перезапустите Apache:
Это решает мою проблему
Как и в сторону для тех , кто , как я нашел , что это не вполне хватает , и не хотят , чтобы пройти через шаги , чтобы полностью удалить php5 перед тем проверив , что php7 будет работать: a2dismod php5 , a2enmod php7.0 и , service apache2 restart наконец , получил меня обратно и работает.
На моей машине с Windows мне нужно было указать абсолютный путь к каталогу расширений в моем php.ini:
Я только что подтвердил, что это правда (Win2008). Странно - другие расширения работают только с рекомендованным extension_dir = "ext" , но не с этим.
На Ubuntu просто выполнить
Я был за Symfony2 и Ubuntu. Pdo_mysql не найден ([PDOException] не удалось найти драйвер). Это решило проблему.
@Kzqai 2:30 утра, и вы только что решили мою проблему, я не использовал mysql, я использовал postgres (> ლ)
хорошо работал на Ubuntu и PHP 7
Это сработало для меня, хотя я не использую php7, но php5.6. Но у меня есть 7 установленных. Я установил 5.6 позже и переключился на это без удаления php7
Проверьте, доступен ли модуль с php -m | grep pdo_mysql .
Если нет, для PHP 7.2 вы можете установить соответствующий пакет с sudo apt install php7.2-mysql .
Используйте аналогичную команду в других версиях PHP и менеджерах пакетов.
Вы проверяли свой php.ini (проверьте правильность расположения с помощью phpinfo ()), если MySQL и драйвер установлены правильно?
Для PHP 5.5 на CentOS я это исправил, установив php55-mysqlnd пакет.
Чтобы получить помощь в установке, напишите комментарий, так как это зависит от того, как PHP установлен в вашей системе. Доступные репо есть webtatic и remi .
для Windows 8.1 / 10 в файле: \\ php.ini вы должны раскомментировать строку "extension = pdo_mysql"
Добавление mysql:// в начало строки DSN решило проблему.
Я провел последний день, пытаясь выяснить, почему я получаю следующую ошибку. Я использую Ubuntu 14.04.
Проблема:
я заметил, что моя версия PHP-CLI работала с php7.0, но php_info () (веб-версия) отображала php 5.5.9. Хотя php_info () говорит, что pdo был включен, использование командной строки (CLI) не распознало команду pdo_mysql. Оказывается, mysql был включен для моей старой версии, но не для версии CLI. Все, что я сделал, это установил mysql для php7.0, и он смог работать.
Вот что сработало:
Чтобы проверить версию:
Установить MySQL для php7.0
1) убедитесь, что ваша версия CLI совпадает с вашей веб-версией
2) Если они отличаются, убедитесь, что ваша версия CLI имеет подключаемый модуль mysql, поскольку он не поставляется с ним по умолчанию.
Проверьте, правильно ли установлен extension_dir в файле конфигурации php. Попробуйте прокомментировать / раскомментировать некоторые расширения и посмотреть, отражено ли это в phpinfo (). Если этого не произойдет, то ни один из файлов конфигурации php не может быть загружен (неправильное местоположение) extension_dir закомментировано или установлено в неправильное местоположение.
У меня была такая же проблема при запуске тестов с отдельным php.ini. Мне пришлось добавить эти строки в мой собственный файл php.ini:
Обратите внимание: именно в этом порядке
Я настоятельно рекомендую mysqllnd вместо этого, mysql потому что у вас было бы много проблем, таких как преобразование чисел, и битовый тип оценивает проблему с mysql расширением.
на Ubuntu установить mysqllnd с помощью следующей команды:
Я исправил эту проблему на своем Debian 6. Обычно я только что установил php5-common пакет. После установки вам необходимо перезапустить ваш веб-сервер (apache или nginx в зависимости от того, какой вы установили). Затем я просто делаю lsof в apache процесс id ( lsof -p process_id ) следующим образом:
Как вы можете видеть выше, модули устанавливаются по пути к файлу, который не известен или определяется общим путем к библиотеке: / usr/lib/php5/20090626/ . Для вашей установки он может отличаться, но только путь pdo_mysql.so, pdo.so, mysqli.so. Вот почему Drupal или любой другой движок php не может найти библиотеку и показывает эту ошибку: PDOException: could not find driver
Я просто не знаю , почему он установлен на таком странном пути, для меня это просто ошибка в библиотеке сценария установки пакета в Debian 6. Я решил проблему, создав символический для всех файлов в соответствии /usr/lib/php5/20090626/ с /usr/lib/php5/ этой командой:
I have just installed Debian Lenny with Apache, MySQL, and PHP and I am receiving a PDOException could not find driver .
This is the specific line of code it is referring to:
$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS)
DB_HOST , DB_NAME , DB_USER , and DB_PASS are constants that I have defined. It works fine on the production server (and on my previous Ubuntu Server setup).
Is this something to do with my PHP installation?
Searching the internet has not helped, all I get is experts-exchange and examples, but no solutions.
Look in your php.ini' file and uncomment extension=php_pdo_mysql.dll . The path to your php.ini` file can be found by looking at your phpinfo().
FYI to any future readers, if you get this error and GoDaddy is your host, login your admin account. Hosting Details->Programming Languages. Upgrade your PHP version to the latest or at least 5.4
To whom it may concern: if you are using php 7.1+ on docker, you can docker exec into the container and run docker-php-ext-install pdo pdo_mysql .
You can, but you shouldn't. Changes made like this only exist in the ephemeral, temporary container, and are easily lost from restarts, rebuilds and updates. Instead, you should add the line to your Dockerfile to assure it becomes a permanent part of the Docker image.
40 Answers 40
You need to have a module called pdo_mysql. Looking for following in phpinfo(),
The dsn in your code reveals you are trying to connect with the mysql driver. Your error message indicates that this driver is unavailable.
Check that you have the mysql extension installed on your server.
In Ubuntu/Debian you check for the package with:
Install the php5-mysql package if you do not have it.
In Ubuntu/Debian you can use:
- PHP5: sudo apt-get install php5-mysql
- PHP7: sudo apt-get install php7.0-mysql
Lastly, to get it working, you will need to restart your web-server:
- Apache: sudo /etc/init.d/apache2 restart
- Nginx: sudo /etc/init.d/nginx restart
Update: newer versions should use php-sqlite3 package instead of php5-sqlite . So use this, if you are using a recent ubuntu version:
If your phpinfo() is not showing the pdo_sqlite line (in my case, on my Ubuntu Server), you just need to run the lines above and then you'll be good to go.
@Andrew if you use pdo_sqlite and didn't install php5-sqlite you only get a PDOException with no info about missing sqlite and try to install php5-mysql twice.
Note that php5-sqlite has become obsolete and may not be available for your system anymore, ie Ubuntu 16.04. Install php-sqlite3 instead.
@briankip Of course it is, if you're trying to connect to SQLite and that driver is missing. But the OP is trying to connect to MySQL. Installing sqlite would/could not solve his problem.
@AndrewEnsley. The title of this page is the error that everyone gets regardless of their db platform. As a result, this page has THE highest google search rank if you google just the error. Therefore, IMO, any answer to this question relevant to other databases should be welcome here. If they don't work for the OP, so be it. OP doesn't have to accept those answers. That doesn't mean this answer isn't "useful" to others investigating the error message in the title that gifted this question with Zoltar's search rank. +1
For newer versions of Ubuntu that have PHP 7.0 you can get the php-mysql package:
Then restart your server:
I had the same issue. The solution depends on OS. In my case, i have debian, so to solve it:
Install php-mysql and php7.0-mysql
I edited my php.ini locate at /etc/php/7.0/apache2/php.ini
Then restart apache:
This solves my problem
As an aside for those like me who found this didn't quite suffice and don't want to go through the steps to completely remove php5 before verifying that php7 will work: a2dismod php5 , a2enmod php7.0 , and service apache2 restart finally got me back up and running.
On my Windows machine, I had to give the absolute path to the extension dir in my php.ini:
I've just confirmed this to be true (Win2008). Strange - the other extensions work with just the recommended extension_dir = "ext" , but not this one.
On Ubuntu just execute
I was behind a Symfony2 and Ubuntu. Pdo_mysql wasnt found ( [PDOException] could not find driver ). This solved the issue.
Check if the module is available with php -m | grep pdo_mysql .
If not, for PHP 7.2, you can install relevant package with sudo apt install php7.2-mysql .
Use similar command on other PHP versions and package managers.
worked well on ubuntu and php 7
It worked for me, Although I am not using php7 but php5.6. But I do have 7 installed. I installed 5.6 later and switched to that without uninstalling php7
When adding these into your php.ini ensure the php_pdo.dll reference is first before the db drivers dlls otherwise this will also cause this error message too. Add them like this:
for Windows 8.1/10 in :\\php.ini file you should uncomment line "extension=pdo_mysql"
Did you check your php.ini (check for the correct location with phpinfo()) if MySQL and the driver is installed correctly?
For PHP 5.5 on CentOS I fixed this by installing the php55-mysqlnd package.
For help installing, write a comment as it depends on the way PHP is installed on your system. Available repo's are webtatic and remi .
Check if extension_dir in php configuration file set correctly. Try to comment/uncomment some extensions and see if it's reflected on phpinfo(). If it doesn't then either php config file cannot be loaded (wrong location) extension_dir is commented or set to the wrong location.
In my case my DSN string was incorrect, specifically it did not contain mysql://. I would have expected a different error message, perhaps something like 'DSN string does not specify driver/protocol.'
Adding mysql:// to the beginning of the DSN string resolved the issue.
I had the same problem during running tests with separate php.ini. I had to add these lines to my own php.ini file:
Notice: Exactly in this order
I spent the last day trying to figure out why I was getting the following error. I am running Ubuntu 14.04.
The Problem:
I noticed that my PHP-CLI version was running php7.0 but php_info() (the web version) was displaying php 5.5.9. Even though php_info() said pdo was enabled, using the command line (CLI) wasn't recognizing the pdo_mysql command. It turns out that mysql was enabled for my old version but not the CLI version. All I did was install mysql for php7.0 and it was able to work.
This is what worked:
To check the version:
To install mysql for php7.0
1) make sure your CLI version is the same as your web version
2) If they are different, make sure your CLI version has the mysql plug-in since it doesn't come with it as a default.
Incorrect installation of PHP was being called
I was experiencing the same problem. And I hope this would help someone who is having a similar issue as me.
Scenario
I created phpinfo.php file in the public folder and run the phpinfo() to look for the location of my php.ini file.
PHP.ini Location = c:\xampp\php\php.ini
Problem
Calling c:\xampp\htdocs> php -v returned PHP 7.2.3 but phpinfo.php showed PHP 7.2.2 .
Solution
Instead of calling
which gave me this error, I used
I extremely recommend mysqllnd instead of mysql because of you would have a lot of problems like number converting and bit type evaluates problem with mysql extension.
on ubuntu install mysqllnd with following command:
In my case, I was using PDO with php-cli, and it worked fine.
Only when I tried to connect from apache, I got the "missing driver" issue, which I didn't quite understand.
A simple apt-get install php-mysql solved it. (Ubuntu 16.04 / PHP7. credits go to the selected answer & Ivan's comment)
Hope it can help.
I Fixed this issue on my Debian 6. Normally I just had installed php5-common package. After installation, you have to restart your web server (apache or nginx depending on which one you installed). Then I just do an lsof on the apache process id ( lsof -p process_id ) as followed :
As you can see above, the modules are installed on a file path not known or guided by common library path: / usr/lib/php5/20090626/ . For your installation, it may be different, but only the path of pdo_mysql.so, pdo.so, mysqli.so. So, this is why Drupal or any other php engine couldn't find the library and shows that error: PDOException: could not find driver
I just don't know why it is installed on such a weird path, for me it's just a bug in the library package installation script in debian 6. I solved the issue by creating a symbolic for all the files under /usr/lib/php5/20090626/ to /usr/lib/php5/ with this command :
Я только что установил Debian Lenny с Apache, MySQL и PHP, и я получаю 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).
это как-то связано с моей установкой PHP?
поиск в интернете не помогло, все, что я получаю, это эксперты-обмен и примеры, но никаких решений.
вам нужен модуль с именем pdo_mysql. Глядя на следующих в phpinfo (),
убедитесь,что на вашем сервере установлено расширение mysql.
в Ubuntu / Debian вы проверяете наличие пакета с помощью:
установите пакет php5-mysql, если у вас его нет.
в Ubuntu / Debian вы можете использовать:
- PHP5: sudo apt-get install php5-mysql
- PHP7: sudo apt-get install php7.0-mysql
наконец, чтобы заставить его работать, вам нужно будет перезагрузить веб-сервер:
- Apache: sudo /etc/init.d/apache2 restart
- Nginx: sudo /etc/init.d/nginx restart
обновление: новые версии должны использовать php-sqlite3 пакета вместо php5-sqlite . Поэтому используйте это, если вы используете последнюю версию ubuntu:
оригинальный ответ на вопрос здесь:
если ваш phpinfo () не показывает строку pdo_sqlite (в моем случае, на моем сервере Ubuntu), вам просто нужно запустить строки выше, и тогда вам будет хорошо идти.
для более новых версий Ubuntu с PHP 7.0 вы можете получить php-mysql пакет:
затем перезапустите сервер:
на моей машине Windows я должен был дать абсолютный путь к расширению dir в моем php.ini:
на Ubuntu просто выполните
у меня была та же проблема. Решение зависит от ОС. В моем случае у меня есть debian, поэтому для его решения:
установить php-mysql и php7.0-mysql
я отредактировал мой php.ini найдите в /etc/php/7.0/apache2 / php.ini
затем перезапустите apache:
это решает мою проблему
хорошо работал на ubuntu и php 7
вы проверили свой php.ini (проверьте правильное расположение с phpinfo ()), если MySQL и драйвер установлены правильно?
на PHP 5.5 on CentOS я исправил это путем установки .
для справки по установке напишите комментарий, поскольку это зависит от способа установки PHP в вашей системе. Доступные РЕПО являются webtatic и remi .
Я провел последний день, пытаясь выяснить, почему я получаю следующую ошибку. Я запускаю Ubuntu 14.04.
Проблема:
Я заметил, что моя версия PHP-CLI работает под управлением php7.0 но php_info () (веб-версия) отображал php 5.5.9. Несмотря на то, что php_info() сказал, что pdo включен, использование командной строки (CLI) не распознает команду pdo_mysql. Оказывается, mysql был включен для моей старой версии, но не версии CLI. Все, что я сделал установите mysql для php7.0 и он смог работать.
вот что сработало:
чтобы проверить версию:
для того чтобы установить MySQL для php7.0
1) Убедитесь, что ваша версия CLI совпадает с вашей веб-версией
2) если они отличаются, убедитесь, что ваша версия CLI имеет плагин mysql, так как он не поставляется с ним по умолчанию.
проверьте, правильно ли установлен extension_dir в файле конфигурации php. Попробуйте прокомментировать / раскомментировать некоторые расширения и посмотреть, отражено ли это на phpinfo(). Если это не так, либо файл конфигурации php не может быть загружен (неправильное расположение), extension_dir комментируется или устанавливается в неправильное расположение.
добавлять mysql:// к началу строки DSN решена проблема.
Я очень рекомендую mysqllnd вместо mysql из-за вас будет много проблем, таких как преобразование чисел и тип бит оценивает проблему с
я исправил эту проблему на моем Debian 6. Обычно я просто установил php5-common пакета. После установки необходимо перезагрузить веб-сервер (apache или nginx в зависимости от установленного). Тогда я просто делаю lsof на идентификаторе процесса apache ( lsof -p process_id ) как следует :
как вы можете видеть выше, модули устанавливаются по пути к файлу, не известному или направляемому общим путем библиотеки:/ usr/lib/php5/20090626/ . Для вашей установки он может быть другим, но только путь pdo_mysql.Итак, pdo.Итак, mysqli.Итак. Итак, вот почему Drupal или любой другой движок php не смог найти библиотеку и показывает эту ошибку: PDOException: could not find driver
Я просто не знаю, почему он установлен на таком странном пути, для меня это просто ошибка в сценарии установки пакета библиотеки в debian 6. Я решил проблему, создав символ для всех файлов в разделе /usr/lib/php5/20090626/ в /usr/lib/php5/ С помощью этой команды :
ln -s /usr/lib/php5/20090626/* /usr/lib/php5/
это сработало для меня.
Я столкнулся с той же проблемой после удаления пакета php5 (который включает в себя все драйверы), чтобы установить пакет php7. Я фактически установил пакет php7 без модуля mysql.
мне удалось решить его, набрав в терминале:
1) $ apt - поиск кэша php7 в котором перечислены все модули, просматривая модули, которые я нашел,
php7.0-mysql-MySQL модуль для PHP
2) $ sudo apt-get install php7.0-в MySQL
еще одна вещь для подтверждения, поскольку некоторые люди копируют / вставляют пример кода из Интернета, чтобы начать работу. Убедитесь, что вы ввели MySQL здесь:
в некоторых примерах это показывает
У меня была такая же проблема во время выполнения тестов с отдельным php.ini. Мне пришлось добавить эти строки в свой php.ini-файл:
обратите внимание: именно в таком порядке
в моем случае я использовал PDO с php-cli, и он работал нормально.
только когда я попытался подключиться из apache, я получил проблему "отсутствует драйвер", которую я не совсем понял.
простой apt-get install php-mysql ее решили. (Ubuntu 16.04 / PHP7. кредиты перейти к выбранному ответу и комментарий Ивана)
надеюсь, что это может помочь.
для тех, кто использует Symfony2 / 3 и задается вопросом, почему вы получаете эту ошибку. Если вы используете "mapping_types", вы можете столкнуться с этой ошибкой. Причина в том, что" mapping_types " находится на неправильном уровне. Например :
этот "mapping_types" должен быть размещен на этом уровне:
надеюсь, это поможет
для Windows 8.1 / 10 в: \ \ php.в файле ini вы должны раскомментировать строку "extension=pdo_mysql"
у меня было такое же исключение при попытке использовать pdo_sqlite . Проблема заключалась в том, что автоматически создается 20-pdo_sqlite.ini и 20-sqlite3.ini символические ссылки (в /etc/php5/mods-enabled ) были разбиты.
удаление сломанных символических ссылок и добавление их вручную с помощью:
- sudo ln -s /etc/php5/mods-avaliable/pdo_sqlite.ini /etc/php5/mods-enabled/20-pdo_sqlite.ini
- sudo ln -s /etc/php5/mods-avaliable/sqlite3.ini /etc/php5/mods-enabled/20-sqlite3.ini
Примечание: это не будет работать для старых версий php, поскольку они не искали конфигурации в /etc/php5/mods-enabled
Если вы используете sqlite для тестирования, вам понадобится PHP SQLite pdo drive. Вы можете установить их, как показано ниже.
Для Ubuntu 14.04
в ubuntu 16.04 нет php5-sqlite
У меня была такая же проблема при использовании PhpBrew ( 5.5.9 / 7.0.14 ) и попытке создать соединение PDO.
после того, как я попробовал большинство решений на этом посту я сделал следующее:
выполнена sudo apt-get install php7.0 (Linux Mint 17.2 / PHP7.0.16) - установлена свежая версия php
везде, где я иду, я читаю, что путь extension_dir должно быть изменено с ext по абсолютному пути. У меня получилось. Однако при попытке построить сервер ПК моего коллеги я должен был позволить значению ext вместо того, чтобы поставить абсолютный путь.
если вы поставили абсолютный путь, и он делает расширение все еще не найден, considerer пытается как с абсолютным путем, так и ext .
неправильная установка PHP вызывалась
я испытывал ту же проблему. И я надеюсь, что это поможет кому-то, у кого такая же проблема, как у меня.
сценарий
я создал на public папка и запустите phpinfo() искать местоположение моего .
PHP.ini Location = c:\xampp\php\php.ini
имел ту же проблему и просто понял, что веб-сайт работает под php MAMP, но когда вы вызываете команду, он запускает mac(Если путь bash не изменен). у вас будет проблема, когда mac не имеет этих расширений.
запустите php-i, чтобы узнать загруженные расширения и установить те, которые вы пропустили. или run ' / приложения/MAMP/bin/php / php5.3.6/bin / php artisan ' использовать mamp's
Я новичок в yii2. Я добавил имя базы данных, имя пользователя в advaced/common/config/main-local.php , Используя веб-сервер xampp, версия php 5.6.8 и PDO также включены.
Это моя конфигурация БД.
Решение
«Скорее всего, это ваша системная конфигурация. Если вы используете такие пакеты, как
MAMP, XAMPP или другое, вам может потребоваться изменить «localhost» на
«127.0.0.1» в вашем файле конфигурации db.php. Также, если вы находитесь на
Linux может потребоваться установить некоторые другие дополнительные пакеты, такие как
php5-mysql и все в таком духе. «
Другие решения
У меня была похожая ситуация во время миграции Yii2 (Advanced) (Xampp в Ubuntu 14.04 и PHP)
Так что после поиска в Google и прочтения этой темы и других я обнаружил, что это может быть возможной проблемой
расширение PHP «pdo_mysql» было отключено или не установлено вообще
и попробовал это на моем терминале:
после понять, что модуля не было …
и после быстрой установки служба должна быть перезапущена …
….наконец (повторите миграцию)
Надеюсь, что вы найдете ее полезной & работать для других.
Я нашел его по запросу Ubuntu, но я не могу добавить ссылку или код, так как это мой первый пост.
У меня была точно такая же ошибка. В процессе поиска я нашел бразильский комментарий, касающийся аналогичной проблемы, вызванной тем, что на его компьютере была установлена две разные версии php.
Я проверил каталог / opt / lampp / bin и обнаружил две разные версии php, одну просто «php», а другую «php-5.6.8», поэтому я решил запустить вторую версию, и она работает!
test @ pctest: ~ $ /opt/lampp/bin/php-5.6.8 / opt / lampp / htdocs / advanced / yii migrate
У меня была та же ошибка, но вместо xampp я использовал Fedora 25 с Apache, для меня ‘dnf install -y php-mysqlnd’ исправил эту ошибку, так что вы, вероятно, пропустили расширение.
На сколько я понял - ошибка подключения к базе данных. Через web к базе подключается нормально, конфиги консоли копируются из db.
В чем может быть ошибка?
Key Words for FKN + antitotal forum (CS VSU):
Wed, 03/21/2018 - 12:15
конфиги консоли копируются из
конфиги консоли копируются из db.
что значит копируются ? --
проблема да, просто в том, что в режиме консоли используется другая точка входа (другой скрипт), и другой конфиг (это сделано чтобы не перегружать один общий конфиг, а также для возможности настройки разных конфигураций для веба и консоли)
Т.е. у вас ошибка в консольном конфиге.
Обновлено:
посмотрел. понял. Надо будет на локальном развернуть.
_____________
матфак вгу и остальная классика =)
Wed, 03/21/2018 - 12:20
Просьба прикрепить к
Просьба прикрепить к репозиторию дамп вашей базы.
_____________
матфак вгу и остальная классика =)
Wed, 03/21/2018 - 12:34
Wed, 03/21/2018 - 17:57
одна ли версия интерпретатора
Дамп прикрепил, но вышеописанные действия делал когда БД была пуста.
понял. Проверю, но на всякий случай гляньте:
версии php в вебе и в консоли совпадают? Если нет, то скорее всего в той версии интерпретатора, что ассоциирована с консолью просто не включено расширение для работы с pdo mysql может просто не включено расширение.
Тогда надо переключить ассоциацию консольной команды на ту версию интерпретатора, которая работает с веб.
Читайте также: