13

我做了如下

添加了 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 代码连接数据库。但它不起作用

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

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

4

4 回答 4

19

您的连接字符串中有错误,加上 $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);
于 2013-04-10T17:22:17.063 回答
3

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

这就像 xx.xx.xx.xx:3306 ,所以你的主机名是 xx.xx.xx.xx

IP 地址可以工作,我已经尝试过并为我工作过

于 2014-12-27T14:33:24.350 回答
2

下面的代码对我有用,试试这个它可能对你有帮助

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'
});
于 2014-11-18T10:03:48.973 回答
0

我想添加一些信息以供将来参考。今天我正在尝试将 Drupal 安装部署到 Open Shift (OS) 并尝试配置 MySql。我通过 SSH (rhc ssh) 连接到操作系统,转到 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。推送到 git 后,重新启动操作系统应用程序并工作!

于 2015-06-15T16:42:01.397 回答