J'utilise laravel socialite pour faire connecter Facebook, en suivant ce site Web: Logines sociales avec Socialite
dès que je tape une commande dans le terminal:
php artisan migrate
Cela montre l'erreur:
Illuminate\Base de données\QueryException: sqlstate [HY000] [1049] Base de données inconnue 'Laravel' (SQL: SELECT * à partir de INFORMATION_SCHEMA.TABLES où table_schema = laravel et TABLE_NAME = Migrations et Table_Type = 'Table de base ')
À la première position, cela indique un problème dans les fichiers .env et ./config/database.php. Dans le fichier .env, vous devriez avoir quelque chose comme ça
DB_CONNECTION=mysql
DB_Host=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
et dans ./config/database.php quelque chose comme ça
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'Host' => env('DATABASE_Host','localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DATABASE_NAME','laravel'),
'username' => env('DATABASE_USERNAME','root'),
'password' => env('DATABASE_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'),
]) : [],
],
Si votre console vous montrait quelque chose comme ça
L'array de base de données est vide. (SQL: SELECT * à partir d'informations_schema.Tables où table_schema = laravel et table_name = migrations et table_type = 'Table de base')
vous deviez vous assurer d'avoir spécifié l'hôte. Cela aurait lieu si vous aviez dans ./config/database.php quelque chose comme ça (remarquez qu'il ne se réfère pas 'localhost'
comme avant)
'Host' => env('DATABASE_Host'),
En supposant que tout va bien ici et que vous avez le nom de la base de données que vous souhaitez utiliser, cela signifie que votre base de données n'existe pas. Allez simplement à phpmyadmin, et créez-en un.
Le problème pour moi a été le fichier de configuration de base de données.php n'avait pas la configuration du port. Il était donc par défaut à 3306, mais ma base de données utilisait un port différent. Je viens d'ajouter la ligne de configuration à la configuration MySQL:
'mysql' => [
'port' => env('DB_PORT', '3306')
]