Как подключиться к базе данных SQL-s2 из a.php применение в BlueMix
Поэтому я создал сайт www на своем частном сервере. Это в основном страница PHP + javascript. Теперь мне нужно переместить его в BlueMix. Единственная проблема заключается в том, что, хотя я использовал базу данных MySQL на своем частном сервере, теперь мне нужно использовать базу данных SQL-s2 и все (как мою страницу php, так и базу данных) на BlueMix.
Майк
2 answers
Вам необходимо проанализировать информацию бд из учетных данных VCAP_SERVICES\service.
Если ваша служба базы данных "База данных SQL", вы можете подключиться к SQLDB, используя следующий пример кода:
//parse VCAP_SERVICES Environment variable
$vcap_services = $_ENV["VCAP_SERVICES"];
$services_json = json_decode($vcap_services,true);
$sqldb = $services_json["sqldb"];
if (empty($sqldb)) {
echo "No sqldb service instance is bound. Please bind a sqldb service instance";
return;
}
//Get Credentials object (db,host,port,username,password)
$sqldb_config = $services_json["sqldb"][0]["credentials"];
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=".
$sqldb_config["db"].
";HOSTNAME=".
$sqldb_config["host"].
";PORT=".
$sqldb_config["port"].
";PROTOCOL=TCPIP;UID=".
$sqldb_config["username"].
";PWD=".
$sqldb_config["password"].
";";
$conn = db2_connect($conn_string, '', ''); //db connection
Информация автоматически извлекается из VCAP_SERVICES. Приложение считывает переменную env. и автоматически извлекает поле имени пользователя, хоста, пароля бд.
Но вы можете вручную установить базу данных, хост, порт, имя пользователя, пароль, просмотрев учетные данные службы услуга:
Как получить учетные данные:
-
Из ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ПАНЕЛИ МОНИТОРИНГА
- нажмите на значок службы в пользовательском интерфейсе панели мониторинга
- на новой странице в левом меню нажмите "Учетные данные службы"
- Если вы не видите никаких учетных данных, но видите кнопку "ДОБАВИТЬ УЧЕТНЫЕ данные", нажмите эту кнопку, отредактируйте учетные данные имени, как вы хотите, и нажмите кнопку "ДОБАВИТЬ".
- Таким образом, вы увидите сервис информация (учетные данные)
-
Из командной строки CF
cf env ваше_апп_имя
В коде мы используем модуль DB2: используйте следующий пакет сборки https://github.com/ibmdb/db2heroku-buildpack-php когда вы используете SQLDB с PHP. Он установит php-модуль "ibm_db2" для вашего использования.
Вы можете установить пакет сборки при запуске приложения в Bluemix:
cf push <your_app_name> -b https://github.com/ibmdb/db2heroku-buildpack-php
Вы можете развернуть свое приложение на Bluemix с помощью пакета сборки PHP. После создания экземпляра базы данных SQL и привязки его к приложению PHP в Bluemix для подключения к службе SQLDB в Bluemix вы можете использовать db2_connect с учетными данными, полученными из переменной среды VCAP_SERVICES. Я не знаю ваших бизнес-требований, однако, если вы хотите сохранить согласованность в разных средах и не хотите переходить на другую СУБД, вы можете попробовать ClearDB, то есть надежная, отказоустойчивая, географически распределенная база данных как услуга для ваших приложений на базе MySQL.