Использование инструмента поиска и замены WordPress в Google CloudSQL - PullRequest
0 голосов
/ 20 сентября 2018

Я недавно перенес сайт на новый сервер и сейчас пытаюсь заменить старый домен новым, используя этот инструмент , предложенный в кодексе WordPress.

Экземпляр SQL ивиртуальные машины находятся в одном регионе и подключены через облачный прокси-сервер sql, однако, когда я пытаюсь подключиться к базе данных с помощью инструмента seekc-replace, я получаю отказ в соединении:

enter image description here

РЕДАКТИРОВАТЬ: Команда, используемая для запуска прокси sql, следующая:

localhost:/cloudsql/project-name:region:sql-instance-name

Это то же самое, что я использую в файле конфигурации для подключениясайт в БД.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Альтернативой использованию Cloud SQL Proxy является прямое подключение к вашему экземпляру.Для этого:

  1. Найдите внешний IP-адрес виртуальной машины, на которой работает инструмент PHP.
  2. Предоставьте доступ для этого IP-адреса вашему экземпляру SQL с инструкциями здесь
  3. Поскольку MySQL может иметь разные имя пользователя / пароль в зависимости от того, откуда вы подключаетесь, убедитесь, что для хоста % существует комбинация имени пользователя / пароля.инструкции здесь .
  4. Используйте инструмент с именем пользователя / паролем из (3), port = 3306 и host = IP-адрес вашего экземпляра SQL
  5. Когда выСделайте, удалите доступ с IP-адреса к вашему экземпляру Cloud SQL.
0 голосов
/ 25 сентября 2018

Ошибка «Отказано в соединении» возникает, когда приложение пытается установить соединение TCP, но служба не прослушивает целевой адрес и порт или брандмауэр отклоняет соединение.

Сначала убедитесь, что вы подключаетесьна правом порту.Запустите sudo netstat -lntp и найдите cloud_sql_proxy.Например, вы могли бы видеть

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      71313/cloud_sql_pro

, указывающий, что облако sql прослушивает порт 3306. Если вы видели это, вам следует изменить порт в вашем инструменте на 3306.

Если netstat делаетне показывать любую cloud_sql_proxy строку, то он не прослушивает TCP.Хотя TCP не всегда нужен для MySQL, похоже, инструмент, который вы используете, нуждается в нем.Убедитесь, что вы запускаете cloud_sql_proxy с -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306

Во-вторых, давайте удостоверимся, что вы подключаетесь по правильному адресу.Это должно быть localhost без :/cloudsql/project-name:region:sql-instance-name после.

Если после этих двух оно все еще не работает, используйте sudo iptables -L для поиска правил брандмауэра, блокирующих трафик.Однако вряд ли у вас есть брандмауэр, останавливающий локальный трафик.

...