簡體   English   中英

如何在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代碼連接數據庫。但它不起作用

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

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

您的連接字符串中的錯誤加上$ OPENSHIFT_MYSQL_DB_ *是env變量,需要通過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)連接到操作系統,轉到app-root / data / sites / default。 下面的cat settings.php,看看OS如何配置數據庫。 這里是:

// 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后,重啟OS應用程序並開始工作!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM