Nextcloud安装报错:创建管理员用户时数据库连接失败
解决Nextcloud容器无法连接MySQL的域名解析问题
问题原因
错误提示 SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution 的核心原因是:两个容器不在同一个Docker网络中。你创建Nextcloud容器时指定了--network mynetwork,但MySQL容器默认使用Docker的bridge默认网络,Nextcloud容器所在的mynetwork无法解析到nextcloud-mysql这个容器名。
解决方案
方法1:重新创建MySQL容器并加入指定网络
如果你的MySQL容器还没有存储重要数据,可以直接删除后重新创建,指定加入mynetwork:
# 停止并删除原MySQL容器 docker stop nextcloud-mysql docker rm nextcloud-mysql # 创建加入mynetwork的MySQL容器 docker run --name nextcloud-mysql --network mynetwork -e MYSQL_ROOT_PASSWORD=ABC -e MYSQL_DATABASE=nextclouddb -e MYSQL_USER=nextclouduser -e MYSQL_PASSWORD=123 -d mysql:8
方法2:将现有MySQL容器连接到mynetwork网络
如果MySQL容器中已有数据不想删除,直接执行以下命令将其加入mynetwork:
docker network connect mynetwork nextcloud-mysql
验证操作
完成以上任一操作后,回到Nextcloud初始化向导页面,重新提交之前填写的数据库配置信息,即可正常建立数据库连接。
内容的提问来源于stack exchange,提问作者BrokenCode
相关产品推荐
相关产品推荐

