2016-07-14 158 views
0

我在一个为了连接到SQL数据库的环境中,首先需要创建一个将本地端口重定向到远程机器的隧道。 我连接到不同的数据库服务器,具体取决于隧道中的端口号。如何在MySql中唯一标识数据库?

换句话说:我总是使用与localhost相同的参数连接到MySql。预先创建的隧道是我实际连接到的服务器的定义。

有几个MySql服务器,都具有相同的模式(用于测试目的),我想知道我连接到哪个实际的数据库(我的脚本无法访问隧道参数)。

当我们创建一个新的数据库时,是否有一个GUID或者归因于它的东西?也许我可以通过查询来检索information_schema

回答

1

不,模式名称是标识符。

您可能想要在每个MySQL实例上唯一地设置server_id。这是一个在您的MySQL实例的my.cnf文件中配置的范围1到2的整数 -1。

http://dev.mysql.com/doc/refman/5.7/en/replication-options.html#option_mysqld_server-id

通常server_id被用来标记到二进制日志中的变化,所以副本集不重播他们已经看到了变化。

但你可以阅读任何SQL查询的server_id

SELECT @@server_id; 

,并根据其价值,你就会知道你在哪个MySQL实例,假设你已经根据一些设计设置每个实例的server_id所以你会知道的。

+0

太棒了,正是我需要的! –