我有一个包含现有托管MySQL数据库的Joomla(PHP)网站。 我有一个Google Cloud SQL实例,其中包含一些统计数据。如何在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;
谷歌云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*
是否都是有效值。
这两个语句都正常运行,但没有错误,但在将数据插入到Joomla上的* test_table *之后,我无法在Google Cloud SQL上的* federated_table *中看到任何数据。
我已经尝试了使用命令行工具(Windows)和使用SQuirrel SQL JDBC客户端的联合表创建。
因为我没有看到任何错误,所以我不确定问题出在Joomla数据库端还是Google Cloud SQL数据库端。所以任何帮助将不胜感激。我假设问题出在两个数据库之间的连接上,但我愿意尝试任何其他可能会引发我的问题。
编辑:
现在我使用的是不同的客户端连接(MySQL工作台),并问这个问题后不久,该报告试图做同样的事情
1286 Unknown storage engine 'FEDERATED' 1266 Using storage engine InnoDB for table 'federated_table'
此 - https://cloud.google.com/sql/docs/features - 特别指出,Cloud SQL不支持联合表。我错过了什么吗? – AvnerSo
这是很久以前的事了,但如果我的记忆服务正确,那么您可以做的是在外部托管的数据库中创建联合表,以连接到Google Cloud SQL实例。您无法执行的操作是在Google Cloud SQL中创建联合表。 – John