我在Openshift平台上遇到连接mysql的问题。我有这个网站http://studentinfobook-rrubio.rhcloud.com/显示错误。它是一个非常简单的应用程序,显然无法连接到mysql盒式磁带。但是,如果我尝试在命令行中直接连接到mysql,如:
mysql --user=user_name --password=your_password db_name
然后它连接得非常好。与phpmyadmin相同的连接。你认为它是什么w / cakephp(这个应用程序在本地工作),或者我还需要在openshift中做些什么?
提前致谢...
修改
没有太多的代码要写。这是我在[/ var / lib / openshift / 548f654a4382ec3b58000078 / app-root / repo / app / Config]中的database.php文件:
<?php
define('DB_HOST', getenv('OPENSHIFT_MYSQL_DB_HOST'));
define('DB_PORT', getenv('OPENSHIFT_MYSQL_DB_PORT'));
define('DB_USER', getenv('OPENSHIFT_MYSQL_DB_USERNAME'));
define('DB_PASS', getenv('OPENSHIFT_MYSQL_DB_PASSWORD'));
define('DB_NAME', getenv('OPENSHIFT_GEAR_NAME'));
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => DB_HOST,
'port' => DB_PORT,
'login' => DB_USER,
'password' => DB_PASS,
'database' => DB_NAME,
'prefix' => ''
//'encoding' => 'utf8',
);
正如我所说,这从mysql返回错误:
SQLSTATE[HY000] [2002] No such file or directory
但是从命令行或phpmyadmin连接提供的凭据时完美地工作...
答案 0 :(得分:0)
该错误消息通常似乎意味着套接字不可用于连接到mysql服务器。您使用的是缩放应用程序吗?如果是这样,那么没有套接字可供使用,因为mysql数据库在另一个齿轮上。以下是目前在openshift上运行的cakephp-example的示例连接文件:https://github.com/openshift/cakephp-example/blob/master/php/app/Config/database.php
您可以查看这是否可以帮助您解决问题。