Laravel SQLSTATE[HY000] [1049] Неизвестная база данных перенос PHP-мастера

#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 был неверный путь$, я обновил ПУТЬ$, и мне удалось решить проблему