Openshift.com-无法连接mysql


Openshift.com - unable to connect with mysql

我正试图与mysql-5.1建立连接,但它显示了诸如"无法连接"或当我更改主机名"无法连接:没有这样的文件或目录"之类的错误。

我的文件读起来像这个

<?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命令来重新启动应用程序,重新启动|重新加载墨盒等-这样做时没有错误。"eg.Mysql-5.1 restart…done"。

3) 尝试ping$OPENSHIFT_MYSQL_DB_HOST并成功。

4) 尝试远程登录$OPENSHIFT_MYSQL_DB_HOST,结果显示连接已建立,并出现一些乱码文本。

5) ps aux|grep"mysql"4213 21721 0.0 0.0 103252 828分/0 S+10:56 0:00 grep mysql

6) mysql>状态

//usr/bin/mysql版本14.14 Distrib 5.1.73,适用于redhat-linux-gnu(x86_64),使用readline 5.1

连接id:4当前数据库:当前用户:xxxxxxxxxxxxx@xx.xx.xx.xxSSL:未使用当前寻呼机:stdout正在使用outfile:"使用分隔符:;服务器版本:5.1.73源分发协议版本:10通过TCP/IP连接:xxxxxxxx-xxxxxxxxxx.rhcloud.com服务器字符集:拉丁1Db字符集:拉丁1客户端字符集:拉丁1连接字符集:拉丁1TCP端口: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代码也表示"无法连接到mysql"。

谢谢Ganesh Kumar

您尝试过以下操作吗:

<?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());
?>

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

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