Подключение к облачному инстансу MySQL

Я довольно новичок в веб-разработке; В настоящее время я пытаюсь создать веб-сайт, который позволяет пользователям отправлять информацию и хранить ее в базе данных. У меня есть GoDaddy для моего доменного имени и хостинга, и я использую Google Cloud Platform для хранения облачной базы данных.

Я успешно выяснил, как хранить данные формы HTML в локальной базе данных (PhpMyAdmin); Я также успешно соединил свой экземпляр Google Cloud с другой локальной базой данных, используя MySQL Workbench.

Я не могу понять, как все соединить; мне нужно соединить мой экземпляр Google Cloud с GoDaddy? Должен ли я просто использовать предложение базы данных GoDaddy? Я попытался указать IPv4-адрес своего экземпляра в качестве «имени хоста» в своем коде подключения PHP, который я загрузил в GoDaddy, но он не подключается, и я не знаю почему. Я даже не знаю, если это то, что вы должны делать?

Я читал о том, что необходимо разрешать определенные IP-адреса для хранения информации, но для меня это не имеет смысла, поскольку в реальном мире я могу просто зайти на веб-сайт, заполнить форму, и моя информация затем будет отправлена ​​на где-то удаленная база данных этой компании. Вот что я пытаюсь сделать для своего сайта. Спасибо.

PS: я использую PHP как серверный язык.

0

Решение

Вот общая функция, которую вы можете использовать для подключения к экземпляру Google Cloud SQL:

function connectSQL( $dbProject, $dbRegion, $dbInstance, $dbIP, $dbName, $dbUsername, $dbPassword, $ssl = TRUE, $persistent = FALSE, $appEngine = FALSE ) {
// $dbProject is the project that owns the database, which may differ from the project using the database

// Create a connection
$db = NULL;
if ( $appEngine ) {
// Connect from App Engine
if ( $persistent ) {
try {
$db = new pdo( "mysql:unix_socket=/cloudsql/$dbProject:$dbRegion:$dbInstance;dbname=$dbName", $dbUsername, $dbPassword, array( PDO::ATTR_PERSISTENT => TRUE ) );
} catch(PDOException $ex) {
echoArr( $ex );
return FALSE;
}
} else {
try {
$db = new pdo( "mysql:unix_socket=/cloudsql/$dbProject:$dbRegion:$dbInstance;dbname=$dbName", $dbUsername, $dbPassword );
} catch(PDOException $ex) {
echoArr( $ex );
return FALSE;
}
}
} else {
// Connect from a non-App Engine environment (localhost, other hosting, etc.)
if ( $persistent ) {
if ( !$ssl ) {
try{
$db = new pdo( 'mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword, array( PDO::ATTR_PERSISTENT => TRUE ) );
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr( $ex );
return FALSE;
}
} else {
try{
$db = new pdo( 'mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword, array(
PDO::MYSQL_ATTR_SSL_KEY=>'/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT=>'/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA=>'/path/to/server-ca.pem',
PDO::ATTR_PERSISTENT => TRUE
)
);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr( $ex );
return FALSE;
}
}
} else {
if ( !$ssl ) {
try{
$db = new pdo( 'mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword );
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr( $ex );
return FALSE;
}
} else {
try{
$db = new pdo( 'mysql:host='.$dbIP.':3306;dbname='.$dbName, $dbUsername, $dbPassword, array(
PDO::MYSQL_ATTR_SSL_KEY=>'/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT=>'/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA=>'/path/to/server-ca.pem'
)
);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echoArr( $ex );
return FALSE;
}
}
}
}

return $db;

}

Вы можете использовать это независимо от того, где размещен ваш скрипт.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru