如何在openshift应用程序中连接到数据库


how to connect to the database in openshift application

我照做了

添加MySQL 5.1数据库。请记下这些凭据:
    Root User: xxxxxxx
    Root Password: xxxxxxx
    Database Name: php

 Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/

你可以通过嵌入phpmyadmin-3.4来管理新的MySQL数据库。phpmyadmin的用户名和密码将与上面的MySQL凭据相同。

新增phpMyAdmin 3.4。请再次记录这些MySQL凭据:
    Root User: xxxxxxx
    Root Password: xxxxxxx
    URL: https://php-doers.rhcloud.com/phpmyadmin/

和我尝试使用下面的PDO代码连接db,但它不工作

$dbh = new PDO('mysql:host=mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/;dbname=php', "xxxxxx, "xxxxxx");

我不知道连接URL是什么意思

有一个错误在您的连接字符串加上$OPENSHIFT_MYSQL_DB_*是环境变量,需要通过getenv 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'));
$dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT;
$dbh = new PDO($dsn, DB_USER, DB_PASS);

从webconsole打开php myadmin,在左上角你会得到一些Ip

就像xx.xx.xx。Xx:3306,主机名是Xx . Xx . Xx . Xx

Ip地址将工作,我已经尝试和工作为我

下面的代码为我工作,试试这个,它可能会帮助你

var mysql = require('mysql');
var mysql = require('mysql');
exports.pool = mysql.createPool({
    host: process.env.OPENSHIFT_MYSQL_DB_HOST || 'localhost',
      port: process.env.OPENSHIFT_MYSQL_DB_PORT || '3306',
      user: process.env.OPENSHIFT_MYSQL_DB_USERNAME || 'root',
      password: process.env.OPENSHIFT_MYSQL_DB_PASSWORD ||  '',
      database: 'chichat' || 'chichat',
      multipleStatements : true,
      charset: 'utf8'
});

我想补充一些信息,以便将来参考。今天我试图部署Drupal安装到Open Shift (OS),并试图配置MySql。我通过SSH (rhc SSH)连接到OS,转到app-root/data/sites/default。执行cat settings.php查看操作系统如何配置数据库。

// When run from Drush, only $_ENV is available.  Might be a bug
if (array_key_exists('OPENSHIFT_APP_NAME', $_SERVER)) {
  $src = $_SERVER;
} else {
  $src = $_ENV;
}
$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => $src['OPENSHIFT_APP_NAME'],
      'username' => $src['OPENSHIFT_MYSQL_DB_USERNAME'],
      'password' => $src['OPENSHIFT_MYSQL_DB_PASSWORD'],
      'host' => $src['OPENSHIFT_MYSQL_DB_HOST'],
      'port' => $src['OPENSHIFT_MYSQL_DB_PORT'],
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);
$conf['file_private_path'] = $src['OPENSHIFT_DATA_DIR'] . 'private/';
$conf['file_temporary_path'] = $src['OPENSHIFT_TMP_DIR'] . 'drupal/';

所以我在git存储库中创建了一个php文件夹(参见Drupal的操作系统文档),复制了一个干净的Drupal安装到其中,并将上面的代码粘贴到settings.php。push到git后,重新启动OS应用并工作!