Как создать федеративную таблицу в 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.
Теперь можно создавать федеративные таблицы обычным способом.