SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:名称或服务未知 [英] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
问题描述
我从 https://github.com/luciddreamz/laravel 下载Laravel进行openshift
然后通过github上载我的存储库.用于连接数据库的此代码不起作用.
问题是位于项目根目录中的.env
文件中的加载变量
I download from https://github.com/luciddreamz/laravel Laravel for openshift
then upload over my repository over github. This code for connect to database not work.
The problem is that load variable from .env
file that locate in root of project
用于解决此问题更改.env
# local environment only
# for production, see .openshift/.env
APP_ENV=APPLICATION_ENV
APP_DEBUG=true
APP_URL=OPENSHIFT_APP_DNS
APP_KEY=OPENSHIFT_SECRET_TOKEN
DB_DRIVER=mysql
DB_HOST=OPENSHIFT_MYSQL_DB_HOST
DB_PORT=OPENSHIFT_MYSQL_DB_PORT
DB_DATABASE=OPENSHIFT_APP_NAME
DB_USERNAME=OPENSHIFT_MYSQL_DB_USERNAME
DB_PASSWORD=OPENSHIFT_MYSQL_DB_PASSWORD
CACHE_DRIVER=apc
SESSION_DRIVER=file
我的错误:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:名称或服务未知
my error :SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
createConnection('mysql:host=OPENSHIFT_MYSQL_DB_HOST;port=OPENSHIFT_MYSQL_DB_PORT;dbname=OPENSHIFT_APP_NAME',
array('driver' => 'mysql',
'host' => 'OPENSHIFT_MYSQL_DB_HOST',
'port' => 'OPENSHIFT_MYSQL_DB_PORT',
'database' => 'OPENSHIFT_APP_NAME',
'username' => 'OPENSHIFT_MYSQL_DB_USERNAME',
'password' => 'OPENSHIFT_MYSQL_DB_PASSWORD',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'name' => 'mysql'),
array('0', '2', '0', false, '0')) in MySqlConnector.php line 20
推荐答案
错误消息的第一行描述了错误类型:"PDOException".下一行显示 PDO::errorInfo
,即:
First line of the error message describes the error type: "PDOException". The next line displays PDO::errorInfo
, i.e:
- SQLSTATE错误代码(在ANSI SQL标准中定义的五个字符的字母数字标识符).
- 特定于驱动程序的错误代码.
- 特定于驱动程序的错误消息.
- SQLSTATE error code (a five characters alphanumeric identifier defined in the ANSI SQL standard).
- Driver-specific error code.
- Driver-specific error message.
- "HY000"是服务器的一般错误(请参见服务器错误代码和消息(在MySQL文档中).
- "2002"是MySQL客户端错误代码,表示无法通过套接字连接到本地MySQL服务器"(请参阅(
- "HY000" is a general server error (see Server Error Codes and Messages in MySQL docs).
- "2002" is MySQL Client Error Code meaning "Can't connect to local MySQL server through socket" (see (Client Error Codes and Messages in MySQL docs).
- The driver specific error code and message ("php_network_getaddresses: getaddrinfo failed: Name or service not known") tell you that PDO is not able to resolve the host name.
您附加的堆栈跟踪(第3行)表明您没有在配置文件中指定数据库连接参数.在本地测试时显示错误,对吗?您需要使用实际的数据库连接参数更新
/.env
.The stack trace you attached, line 3, reveals that you did not specify the database connection parameters in the configuration file. The error show up when you test on local, right? You need to update
/.env
with the actual database connection parameters.这篇关于SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:名称或服务未知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!