【发布时间】:2020-12-15 08:57:18
【问题描述】:
我在本地 (MAMP) 上开发了一个 laravel 7 应用程序。我现在想在我的网站托管帐户(apache2、php7.4、mysql 服务器)上进行设置。我做了一个 git pull 来拉下所有文件,现在当我做一个
php artisan migrate
我收到一条错误提示
SQLSTATE[HY000] [2002] No such file or directory (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key, `migration` varchar(191) not null, `batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
我能够登录到托管服务器上的 phpmyadmin 并在那里看到我的空数据库。 我的 env 文件如下所示:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=commandcenterdb
DB_USERNAME=****
DB_PASSWORD=******
我的 config/database.php 文件看起来像这样
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE',' commandcenterdb'),
'username' => env('DB_USERNAME', '*****'),
'password' => env('DB_PASSWORD', '********'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => false,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
【问题讨论】:
-
你见过this answer吗?这是一个较旧的 Laravel 版本,他们必须在 database.php 和 env 文件中将
localhost更改为127.0.0.1(你也有localhost)。 -
是的,我知道如何使用 StackOverflow 上的搜索功能 :) 我尝试了该帖子中的内容,但后来我收到一条错误消息,提示连接被拒绝,所以我想可能是因为那是旧版本的Laravel 那不是 L7 的正确答案吗?如果我创建一个通过 pdo 方法连接到 mysql 的常规 php 文件,它可以工作,所以我知道我的凭据是正确的。
-
我遇到了类似的问题,虽然我使用的是 Docker,但我不确定 this is 是否相关。