#php #laravel #macos #psql #php-7.3
Вопрос:
У меня есть Laravel 5.8, работающий локально на моем macOS Big Sur 11.4
Я проверил phpinfo();
, я вижу
Загруженный Файл Конфигурации
/Applications/MAMP/bin/php/php7.4.12/conf/php.ini.
pdo_pgsql
Я проверил /Applications/MAMP/bin/php/php7.4.12/conf/php.ini.
, нашел ли я их, они уже раскомментированы.
Это также отражено на странице phpinfo
В последнее время я не могу php artisan migrate
успешно бегать, я все время получаю :
ОсветитьБаза данныхИсключение запроса : не удалось найти драйвер (SQL: выберите * из information_schema.таблицы, где table_schema = общедоступный и table_name = миграции и table_type = «БАЗОВАЯ ТАБЛИЦА»)
Я использую psql
не MySQL.
DB_LOCAL_CONNECTION=pgsql
DB_LOCAL_HOST=localhost
DB_LOCAL_PORT=5432
DB_LOCAL_DATABASE=dbName
DB_LOCAL_USERNAME=postgres
DB_LOCAL_PASSWORD=
Я проверил не тот файл? Что еще я должен проверить ?
@Тим : Я добавил это в соответствии с вашим комментарием.
<?php
return [
'default' => env('DB_LOCAL_CONNECTION', 'pgsql'),
'connections' => [
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_LOCAL_HOST', '127.0.0.1'),
'port' => env('DB_LOCAL_PORT', '5432'),
'database' => env('DB_LOCAL_DATABASE', 'db'),
'username' => env('DB_LOCAL_USERNAME', 'user'),
'password' => env('DB_LOCAL_PASSWORD', '123'),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'schema' => 'public',
'sslmode' => 'prefer',
],
]
];
@Мозг
Это для тебя. Я попытался обновить версию CLI до 7.3 таким образом, и проверьте ini-файл этой версии 7.3, он включен … пожалуйста, смотрите шаги ниже
brew install php@7.3
cd /usr/local/etc/php/7.3/
code php.ini
➜ 7.3 cat php.ini | grep pgsql
extension=pdo_pgsql
extension=pgsql
; http://php.net/pgsql.allow-persistent
pgsql.allow_persistent = On
; http://php.net/pgsql.auto-reset-persistent
pgsql.auto_reset_persistent = Off
; http://php.net/pgsql.max-persistent
pgsql.max_persistent = -1
; http://php.net/pgsql.max-links
pgsql.max_links = -1
; http://php.net/pgsql.ignore-notice
pgsql.ignore_notice = 0
; Unless pgsql.ignore_notice=0, module cannot log notice message.
; http://php.net/pgsql.log-notice
pgsql.log_notice = 0
Комментарии:
1. Вчера у меня была похожая проблема. Попробуйте использовать порт 5433.
2. Не имеет значения , является ли порт
5432
или5433
, ошибка заключается в том, что у вас нет драйвера для использованияpgsql
, а не в том, что он не может подключиться к базе данных.3. Возможная проблема заключается в том, что ваше
default
соединение не использует вашу.env
переменную:'default' => env('DB_CONNECTION', 'pgsql'),
. Видите , как это соотноситсяDB_CONNECTION
, но ваше имяDB_LOCAL_CONNECTION
? Это не совпадает. Примечание: Это настройки по умолчанию, вы не показали эту конкретную настройку, так что это предположение.4.@TimLewis : У меня есть эта строка в моем
database.php
'default' => env('DB_LOCAL_CONNECTION', 'pgsql'),
5. Спасибо, это все проясняет. Это было подозрение, но да, похоже, все в порядке.
Ответ №1:
Вам следует проверить свой php.ini
файл на наличие расширений с именами: pdo_pgsql.so
и pgsql.so
здесь и без комментариев.
Комментарии:
1. Я видел эти строки
extension=pgsql.so
иextension=pdo_pgsql.so
уже раскомментировал их. Я зарегистрировался,/Applications/MAMP/bin/php/php7.4.12/conf/php.ini
я проверял не тот файл ?