【发布时间】:2015-11-11 18:46:23
【问题描述】:
我使用 MAMP 在 laravel 中做了一个小项目,一切正常。
现在我想把这个项目放到网上。 我用 FTP 复制了项目并更改了 database.php 文件。
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'private.be.mysql'),
'database' => env('DB_DATABASE', 'private_be'),
'username' => env('DB_USERNAME', 'private_be'),
'password' => env('DB_PASSWORD', 'private'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
访问网站时安装正常,但访问使用数据库连接的页面时出现以下错误。
SQLSTATE[42S02]: Base table or view not found:
1146 Table 'private_be.users' doesn't exist (SQL: select * from `users`)
所以我发现我忘了迁移我的项目。但是当输入命令“php artisan migrate”时,我在终端中收到以下错误。
[ErrorException]
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename
nor servname provided, or not known
起初我以为我对“mysql”的设置可能不正确,但我敢肯定。
我的 .env 文件如下所示
APP_ENV=local
APP_DEBUG=true
APP_KEY=***
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
谁能帮我解决迁移错误?
【问题讨论】:
-
您是否应该为
DB_HOST、DB_DATABASE等提供env变量?现在,您的 mysql 服务器位于private.be.mysql,这是默认提供的。 -
不,我删除了 DB_HOST, ... env 中的变量,所以我确定它是使用 database.php 连接的。
-
好的,没关系,我只是在检查以确保您确实想要使用这些设置。对我来说,它似乎在
private.be.mysql上找不到 mysql,但除此之外,我不确定......