Openshift.com - 无法连接mysql

时间:2014-04-11 15:08:36

标签: php mysql openshift

我正在尝试与mysql-5.1建立连接,但它显示的错误类似于"无法连接"或者当我更改主机名时#34;无法连接:没有这样的文件或目录"。

我的文件是这样的

<?php
$link = mysql_connect('localhost', 'username', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
printf("MySQL server version: %s\n", mysql_get_server_info());
?>

尝试将mysql_connect更改为mysqli_connect。没有区别。

1)Mysql正在运行(根据界面)。

2)尝试了各种rhc命令来重启应用程序,重新启动盒式磁带等 - 这样做没有错误。&#34;例如.Mysql-5.1 restart ... done&#34;。

3)尝试ping $ OPENSHIFT_MYSQL_DB_HOST并且有效。

4)尝试telnet $ OPENSHIFT_MYSQL_DB_HOST,它表示建立了连接并且出现了一些乱码。

5)ps aux | grep&#34; mysql&#34; 4213 21721 0.0 0.0 103252 828 pts / 0 S + 10:56 0:00 grep mysql

6)的MySQL&GT;状态

/ usr / bin / mysql Ver 14.14使用readline 5.1为redhat-linux-gnu(x86_64)分发5.1.73

连接ID:4 当前数据库: 当前用户:xxxxxxxxxxxxx@xx.xx.xx.xx SSL:未使用 当前寻呼机:stdout 使用outfile:&#39;&#39; 使用分隔符:; 服务器版本:5.1.73源代码分发 协议版本:10 连接:xxxxxxxx-xxxxxxxxxxxxxxx.rhcloud.com通过TCP / IP 服务器characterset:latin1 Db characterset:latin1 客户端字符集:latin1 Conn。characterset:latin1 TCP端口:50986 正常运行时间:18分40秒

主题:1个问题:4个慢查询:0个打开:17个刷新表:1个打开表:4个每秒查询数:0.3

我将代码更改为

<?php
$mysqli = new mysqli('localhost', 'username', 'password', 'dbname');

/*
 * This is the "official" OO way to do it,
 * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

/*
 * Use this instead of $connect_error if you need to ensure
 * compatibility with PHP versions prior to 5.2.9 and 5.3.0.
 */
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

再次出现同样的错误。

有人可以帮帮我吗?甚至phpmyadmin代码说&#34;无法连接到mysql&#34;。

感谢 Ganesh Kumar

2 个答案:

答案 0 :(得分:1)

您是否尝试过以下操作:

<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database */
define('DB_NAME', $_ENV['OPENSHIFT_APP_NAME']);

/** MySQL database username */
define('DB_USER', $_ENV['OPENSHIFT_MYSQL_DB_USERNAME']);

/** MySQL database password */
define('DB_PASSWORD', $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD']);

/** MySQL hostname */
define('DB_HOST', $_ENV['OPENSHIFT_MYSQL_DB_HOST'] . ':' . $_ENV['OPENSHIFT_MYSQL_DB_PORT']);

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
printf("MySQL server version: %s\n", mysql_get_server_info());
?>

答案 1 :(得分:0)

我遇到了同样的问题,并且可以通过以下代码解决它。

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'));

$dbhost = constant("DB_HOST"); // Host name 
$dbport = constant("DB_PORT"); // Host port
$dbusername = constant("DB_USER"); // Mysql username 
$dbpassword = constant("DB_PASS"); // Mysql password 
$db_name = constant("DB_NAME"); // Database name