我在Heroku上有一个Laravel应用,使用Maria DB作为附加组件。我的应用程序已启动并正在运行。一切都在我本地执行。当我尝试运行heroku php artisan migration将表迁移到DB时,出现此错误。
在Connector.php第68行中:
SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:名称或服务未知
在Connector.php第68行中:
PDO :: __ construct():php_network_getaddresses:getaddrinfo失败:名称或服务未知
我已将Env变量添加到Heroku仪表板。一旦我添加了JAWS Marai DB,它就给了我JAWS_MARIA_DB连接字符串,但是我只是用它尝试了一下,我删除了这个变量,并从我的.env中添加了所有nexessary DB变量,并且没有任何作用。顺便说一句,我使用的是从Heroku JAWS DB设置页面给我的DB值,而不是本地项目中的值。
任何人都有任何想法。
谢谢!
答案 0 :(得分:0)
这个问题有点老了,但是我认为这可以帮助其他尝试诊断这个问题的人。
您需要将以下内容添加到数据库配置文件中。
if(getenv('SQL_URL')) {
$url = parse_url(getenv('SQL_URL'));
putenv('DB_HOST='.$url['host']);
putenv('DB_PORT='.$url['port']);
putenv('DB_USERNAME='.$url['user']);
putenv('DB_DATABASE='.substr($url["path"], 1));
putenv('DB_PASSWORD='.$url['pass']);
}
只要您在Heroku中将颚文件URL添加到配置变量中,就会解析该URL并生成正确的数据库配置信息。