#php #laravel #laravel-migrations
Вопрос:
Я уже настраивал Laravel раньше, и я никогда не сталкивался с неизвестной проблемой базы данных. Я пытаюсь установить миграцию Laravel по умолчанию в новом проекте.
Я уже создал базу данных на своем сервере.
Я использую порт Apache MAMP:80 Порт MYSQL: 3306
Моя настройка env выглядит так:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=thevinesa
DB_USERNAME=root
DB_PASSWORD=******
Когда я пытаюсь использовать PHP artisan migrate, я получаю ошибку неизвестной базы данных
SQLSTATE[HY000] [1049] Unknown database 'thevinesa' (SQL: select * from information_schema.tables where table_schema = thevinesa and table_name = migrations and table_type = 'BASE TABLE') at vendor/laravel/framework/src/Illuminate/Database/Connection.php:703
699▕ // If an exception occurs when attempting to run a query, we'll format the error
700▕ // message to include the bindings with SQL, which will make this exception a
701▕ // lot more helpful to the developer instead of just the database's errors.
702▕ catch (Exception $e) {
703▕ throw new QueryException(
704▕ $query, $this->prepareBindings($bindings), $e
705▕ );
706▕ }
707▕ }
33 vendor frames
34 artisan:37
IlluminateFoundationConsoleKernel::handle(Object(SymfonyComponentConsoleInputArgvInput), Object(SymfonyComponentConsoleOutputConsoleOutput))
Как я могу устранить эту ошибку
Комментарии:
1. Вы определенно создали
thevinesa
базу данных, т. е. запустилиCREATE DATABASE thevinesa;
ее ?2. Никогда не сообщайте свой пароль, даже если это просто база данных локального хоста. Вы уверены, что ввели данные в базу данных правильно, с учетом регистра? Правильный ли порт? Верны ли имя пользователя и пароль? Можете ли вы подключиться к базе данных через интерфейс командной строки?
3. с помощью sequal pro я могу подключиться к базе данных, но через laravel я не могу
4. @ThandoHlophe можете ли вы проверить мой ответ и журнал ошибок здесь, чтобы я мог помочь.
Ответ №1:
Шаг 1:
Запустите эту команду внутри вашего проекта
php artisan optimize:clear
Шаг 2:
Затем запустите проект, если в локальной:
php artisan serve
Затем подключается база данных.
Комментарии:
1. Привет, Али, я могу запустить службу php artisan, но проблема в том, что когда я пытаюсь использовать миграцию PHP artisan, я не могу добавить миграцию в базу данных
2. Вы выполнили первую команду ? Перед этим выполните шаг 1 ===> затем снова запустите php artrisan serve ===>> после этого вы можете проверить миграцию php artisan
3. Я последовал вашим шагам, но я все еще не получаю SQLSTATE[HY000] [1049] Неизвестную базу данных «thevinesa», я создал проект Laravel.
4. могу ли я посмотреть код, который вы хотите перенести
5. Я нашел проблему, поэтому в моем каталоге ~bash был неверный путь$, я обновил ПУТЬ$, и мне удалось решить проблему
Ответ №2:
Предложение от @ThandoHlophe
*
Я нашел проблему, поэтому в моем каталоге ~bash был неверный путь$, я обновил ПУТЬ$, и мне удалось решить проблему
Это простая ошибка, вы все еще не создали свою базу данных в mysql или phpmyadmin с именем thevinesa
DB_DATABASE=thevinesa
Laravel пытается выяснить имя базы thevinesa
данных для подключения, но они не нашли и назвали базу thevinesa
данных . Попробуйте создать базу данных.
Затем мигрируйте.
php artisan cache:clear
php artisan config:clear
php artisan migrate
команда, связанная с базой данных
migrate:fresh Drop all tables and re-run all migrations
migrate:install Create the migration repository
migrate:refresh Reset and re-run all migrations
migrate:reset Rollback all database migrations
migrate:rollback Rollback the last database migration
migrate:status Show the status of each migratioin
Или
Laravel не может подключиться к вашей базе данных.
Перейдите в Storage->logs->laravel.log
файл, вы найдете свою ошибку
или вы можете использовать php artisan migrate -v
, если вы находитесь внутри linux
. Он покажет подробную информацию об ошибке.
И вы создали эту базу данных?
Проверьте, есть ли у вас файл bootstrapcacheconfig.php
. Если да, то удалите его.
Я не нашел никакой ошибки PDOException, но если вы изменили
`config->database.php` file
Вот моя config->databse.php
попытка сравнить эти
Этот код взят из Laravel Framework 7.30.4, он может отличаться, но у вас может быть основная идея.
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
Если вы хотите проверить свою версию
php artisan -v
Может быть, ошибка будет допущена мастером. На данный момент это мой ремесленник из Laravel Framework 7.30.4 и php 7.2.Посмотрите, если вы не нашли ничего подозрительного, не изменили свой файл ремесленника, сделайте копию резервной копии. И как можно скорее покажите мне свой журнал ошибок.
#!/usr/bin/env php
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/
$kernel = $app->make(IlluminateContractsConsoleKernel::class);
$status = $kernel->handle(
$input = new SymfonyComponentConsoleInputArgvInput,
new SymfonyComponentConsoleOutputConsoleOutput
);
/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/
$kernel->terminate($input, $status);
exit($status);
Комментарии:
1. Если вы решите свою проблему, можете ли вы одобрить мой ответ, чтобы помочь другим
2. база данных уже существует в phpmyadmin, но она возвращает не foudn
3. конечно, перейдите в хранилище->журналы->>laravel.log и опубликуйте свой журнал ошибок здесь, чтобы я мог проверить, почему laravel отказывается подключаться
4. вы изменили основной файл, как этот поставщик/laravel/framework/src/Illuminate/База данных/Подключение.php:703 .. Если вы помните, что, к сожалению, вы изменили свое ядро, то можете рассказать нам об этом.
5. Я нашел проблему, поэтому в моем каталоге ~bash был неверный путь$, я обновил ПУТЬ$, и мне удалось решить проблему