как подключиться к базе данных в приложении openshift

Я сделал следующее

Добавлена ​​база данных MySQL 5.1. Пожалуйста, отметьте эти полномочия:

Root User: xxxxxxx Root Password: xxxxxxx Database Name: php Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/ 

Вы можете управлять своей новой базой данных MySQL, встраивая phpmyadmin-3.4. Имя пользователя и пароль phpmyadmin будут такими же, как и учетные данные MySQL выше.

Добавлен phpMyAdmin 3.4. Пожалуйста, учтите эти учетные данные MySQL еще раз:

  Root User: xxxxxxx Root Password: xxxxxxx URL: https://php-doers.rhcloud.com/phpmyadmin/ 

и я пытаюсь подключить db, используя следующий PDO-код. но он не работает

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

Я не знаю, что означает URL-адрес соединения?

Solutions Collecting From Web of "как подключиться к базе данных в приложении openshift"

В вашей строке соединения есть ошибка, плюс $ 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); 

Откройте php myadmin из webconsole, и в левом углу вы получите некоторый Ip

Это похоже на xx.xx.xx.xx: 3306, поэтому ваше имя хоста – xx.xx.xx.xx

Ip адрес wil work, я пробовал и работал для меня

ниже код работал для меня, попробуйте это, это может помочь вам

 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 (ОС) и попытался настроить 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/'; 

Поэтому я создал папку php в репозитории git (см. Документацию по ОС Drupal), скопировал на нее чистую установку Drupal и вставил код выше в settings.php. После нажатия на git, перезапустил приложение ОС и работал!