我最近将站点迁移到了新服务器,现在正尝试使用wordpress抄本中建议的this tool将旧域替换为新域。
SQL实例和VM都在同一区域中,并使用云sql代理连接,但是当我尝试通过searc-replace工具连接到数据库时,连接被拒绝:
编辑: 用于启动sql代理的命令如下:
localhost:/cloudsql/project-name:region:sql-instance-name
与在配置文件中用于将站点连接到数据库的方式相同。
答案 0 :(得分:1)
当应用程序尝试进行TCP连接但没有服务在目标地址和端口上侦听或防火墙拒绝连接时,发生“拒绝连接”错误。
首先,请确保您连接的端口正确。运行sudo netstat -lntp
并查找cloud_sql_proxy。例如,您可能会看到
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 71313/cloud_sql_pro
表明cloud sql正在侦听端口3306。如果看到此消息,则应将工具中的端口更改为3306。
如果netstat
不显示 any cloud_sql_proxy
行,则表明它不在监听TCP。虽然MySQL并不总是需要TCP,但看起来您正在使用的工具确实需要它。确保使用-instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
其次,请确保您连接的地址正确。此字段应为localhost
,之后不得包含:/cloudsql/project-name:region:sql-instance-name
。
如果在这两个之后仍然无法使用,请使用sudo iptables -L
查找阻止流量的防火墙规则。我相信您的防火墙不太可能阻止本地流量。
答案 1 :(得分:1)