我正在尝试从App Engine中的自定义运行时环境连接到Google sql云实例。
当我按照doc使用Unix域套接字进行连接时,它可以工作。问题是当我尝试使用TCP连接进行连接时。它显示:
Warning: mysqli_connect(): (HY000/2002): Connection refused in
/var/www/html/index.php on line 3
Connect error: Connection refused
这是我的app.yaml文件:
runtime: custom
env: flex
beta_settings:
cloud_sql_instances: testing-mvalcam:europe-west1:testdb=tcp:3306
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
Dockerfile:
FROM php:7.0-apache
ENV PORT 8080
CMD sed -i "s/80/$PORT/g" /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf && docker-php-entrypoint apache2-foreground
RUN docker-php-ext-install mysqli
RUN a2enmod rewrite
COPY ./src /var/www/html
EXPOSE $PORT
还有index.php:
<?php
$link = mysqli_connect('127.0.0.1', 'root', 'root', 'test');
if (!$link){
die('Connect error: '. mysqli_connect_error());
}
echo 'successfully connected';
mysqli_close($link);
?>
我在做什么错了?
答案 0 :(得分:1)
如您正在使用的documentation所示(请记住单击此页面上的TCP CONNECTION选项卡),位于app.yaml的与Cloud SQL实例有关的部分中,有关正在使用的TCP端口的信息需要数据库服务器。
答案 1 :(得分:1)
IP地址“ 172.17.0.1”与Web服务器运行所在的Docker容器相关,您可以在该in this documentation上获取更多上下文。
如果您使用Dockerfile
进行部署,则可能无法使用您正在使用的文档页面来调整用例。在以下documentation中,您可以阅读有关App Engine灵活运行时的更多信息。