如何解决Laravel PHP Artisan迁移错误问题?

10
我将使用laravel socialite来实现Facebook登录,参考以下网站:Social Logins with Socialite 一旦我在终端中输入命令:
php artisan migrate

这显示了错误:

Illuminate\Database\QueryException: SQLSTATE[HY000] [1049] 未知数据库 'laravel'(SQL:select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')


1
你能否发布你的 .env 文件设置? - Prafulla Kumar Sahu
12个回答

15

打开.env文件并对其进行编辑。只需设置正确的DB凭据:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=          // Your Database Name
DB_USERNAME=          // Your Database Username
DB_PASSWORD=          // Your Database Password 

如果没有默认用户名,则应将DB_USERNAME设置为root

如果数据库上没有设置密码,请清除它DB_PASSWORD

完成.env编辑后,必须清除缓存:php artisan config:cache

运行 迁移 Artisan 命令之后:php artisan migrate


1
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= - Johnny Jeong
2
@JohnnyJeong 你清除了缓存吗?另外,请检查一下你在服务器数据库中是否创建了一个名为 laravel 的数据库? - Udhav Sarvaiya

11

PhpMyAdmin中找不到名为laravel的数据库。

请按照以下步骤解决此问题:

  1. 在本地主控仪表板中进入phpmyadmin

  2. 创建一个名为laravel的数据库

  3. 运行您编辑器的CMD或终端中的php artisan migrate命令


5

我遇到了相同的问题,但是将 localhost 改为 127.0.0.1 就解决了。

DB_CONNECTION=mysql
DB_PORT=3306
DB_HOST=127.0.0.1
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

谢谢Hassan,我们遇到了相同的问题,但现在已经解决了。 - Faisal

2
问题不是关于Facebook登录。 您的迁移命令实际上无法与数据库建立连接。 请检查您的.env文件,您需要像这样拥有一些内容。
DB_CONNECTION=mysql
DB_PORT=3306
DB_HOST=localhost
DB_DATABASE=laravel // This is line which you need to update, set here the real database name
DB_USERNAME=root
DB_PASSWORD=

如果您没有`.env`文件,可以将`.env.example`重命名为`.env`,设置您的数据库配置,然后可以使用`migrate`命令迁移表。
如果您想将数据库称为laravel,则意味着您忘记创建该数据库,请先使用mysql命令行或任何可以与mysql一起使用的应用程序(如phpMyAdmin,DataGrip,phpStorm,jetbrain Db等)创建数据库。

2
你没有读他的帖子。它没有起作用。我也遇到了同样的问题。我对.env文件进行了更改,添加了数据库名称,清除了缓存。但是还是不行。 - Olu Adeyemo

1

看起来您忘记设置Laravel应用程序了。您可以在项目根目录下的.env文件中指定数据库连接和其他基本设置。


0

我通过在数据库名称两侧加上单引号来解决了这个问题...

DB_HOST=localhost
DB_PORT=3306
DB_DATABASE='laravel'
DB_USERNAME=root
DB_PASSWORD=

0
对我来说问题在于database.php配置文件没有PORT配置,因此默认为3306,但我的数据库使用了不同的端口。我只需将配置行添加到mysql配置中即可:
'mysql' => [
'port' => env('DB_PORT', '3306')
]

0
找到解决方案了。我遇到了同样的问题。问题的原因是在phpmyadmin中没有名为“laravel”的数据库。它可能已被删除或重命名。因此,请检查是否有名为“laravel”的数据库。如果不存在,请在phpmyadmin中使用该名称创建数据库,

laravel

之后运行以下命令,

php artisan migrate

这对我有用


0

正如您从上面的答案中看到的,您需要更改.env文件中数据库的名称,确保您更改的是.env文件而不是.env.example文件。


0

php artisan route:cache

执行此命令后,解决了我的错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接