如何在MySql中唯一标识数据库?

时间:2016-07-14 17:37:45

标签: mysql database database-design

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

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

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

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

来检索

1 个答案:

答案 0 :(得分:1)

不,架构名称是标识符。

您可能希望在每个MySQL实例上唯一地设置server_id。这是您在MySQL实例的my.cnf文件中配置的1到2 32 -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,以便您知道。