Как создать федеративную таблицу в Google Cloud SQL

У меня есть веб-сайт Joomla (PHP) с существующей базой данных MySQL. У меня есть экземпляр Google Cloud SQL с некоторыми статистическими данными в.

Мне нужно запросить данные в обеих базах данных и хочу, чтобы запрос выполнялся на экземпляре Google Cloud SQL.

Мои исследования заставили меня поверить, что лучший способ сделать это - создать федеративную таблицу в базе данных Google Cloud SQL, но при попытке сделать это я не получаю ожидаемых результатов (и при этом я не получаю ошибку?!)

Joomla MySQL таблица:

CREATE TABLE test_table (
  id INT(20) NOT NULL AUTO_INCREMENT,
  name VARCHAR(32) NOT NULL DEFAULT '',
  other INT(20) NOT NULL DEFAULT '0',
  PRIMARY KEY (id),
  INDEX name (name),
  INDEX other_key (other)
)
ENGINE=MyISAM
DEFAULT CHARSET=latin1;

Google Cloud SQL:

CREATE TABLE federated_table (
  id INT(20) NOT NULL AUTO_INCREMENT,
  name VARCHAR(32) NOT NULL DEFAULT '',
  other INT(20) NOT NULL DEFAULT '0',
  PRIMARY KEY (id),
  INDEX name (name),
  INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://*uid*:*pwd*@*joomla_server_ip*:3306/*database_name*/test_table';

куда

*uid*, *pwd*, *joomla_server_ip* and *database_name* 

Все допустимые значения.

Оба оператора выполняются нормально, без ошибок, но после вставки данных в *test_table* в Joomla я не вижу никаких данных в *federated_table* в Google Cloud SQL.

Я попытался создать федеративную таблицу с помощью как инструмента командной строки (Windows), так и с помощью клиента SQuirrel SQL JDBC.

Потому что я не вижу ошибок, поэтому я не уверен, что проблема в конце базы данных Joomla или в базе данных Google Cloud SQL. Так что любая помощь будет принята с благодарностью. Я предполагаю, что проблема связана со связью между двумя базами данных, но я готов попробовать любые другие методы, которые вы можете мне бросить.

РЕДАКТИРОВАТЬ:

Я сейчас использую другой клиент для подключения (MySQL Workbench), и это сообщает об ошибке при попытке сделать то же самое

1286 Unknown storage engine 'FEDERATED' 1266 Using storage engine InnoDB for table 'federated_table'

1 ответ

Решение

Вскоре после того, как он задал этот вопрос, Google добавил протокол MySQL Wire в Google Cloud SQL.

http://googlecloudplatform.blogspot.co.uk/2013/10/google-cloud-sql-now-accessible-from-any-application-anywhere.html

Теперь можно создавать федеративные таблицы обычным способом.

Другие вопросы по тегам