На момент написания этой статьи Perl не поддерживается для взаимодействия с Google Cloud Platform. Даже если вам удастся внедрить сценарий perl для подключения к экземпляру Cloud SQL, есть вероятность, что решение однажды перестанет работать, если оно носит характер ad h c. Несколько клиентских библиотек для множества других языков действительно реализованы и активно поддерживаются. Если вы хотите взаимодействовать со службами GCP программно, я настоятельно рекомендую переключиться на одну из этих библиотек. Более того, вы можете получить прямую помощь в случае возникновения каких-либо неудобств со стороны службы поддержки или с помощью проблемы с Github.
С учетом вышесказанного возможный обходной путь может заключаться в том, чтобы вызвать клиента mysql из сценария perl как вы бы сделали в linux оболочке. Идея состоит в том, чтобы записать ваши операторы sql в файл и запустить инструмент командной строки mysql, который передает файл операторов. Есть очевидные предостережения с этим подходом, и он не работает вообще, если вам нужен интерактивный сеанс, но может выполнять работу по запуску простых задач из сценария perl. Я делюсь небольшим фрагментом, который я сделал.
-- sql statements file
show databases;
#!/usr/bin/perl
$data = `mysql --user=root --password=XXX --host=XXX.XXX.XXX.XXX < file.sql`;
print("$data");
Имейте в виду, что использование пароля таким способом - ужасная идея с точки зрения безопасности. Кроме того, этот подход должен вносить в белый список внешний IP-адрес GCE на вкладке Подключения вашего SQL экземпляра, как показано здесь .
РЕДАКТИРОВАТЬ: Список поддерживаемые библиотеки для подключения к Cloud SQL можно найти здесь , почти все из них требуют использования cloud_sql_proxy
, конфигурация которого описана в том же документе (прокрутка вверх).
Кроме того, есть также библиотеки, которые позволяют управлять вашими экземплярами, как если бы вы использовали инструмент командной строки gcloud, который можно найти здесь