我正试图与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