我在一个环境中,为了连接到SQL数据库,我首先需要创建一个隧道,将本地端口重定向到远程机器。 我连接到不同的数据库服务器,具体取决于隧道中的端口号。
换句话说:我总是使用与localhost相同的参数连接到MySql。事先创建的隧道定义了我实际连接的服务器。
有几个MySql服务器,都具有相同的模式(用于测试目的),我想知道我连接到哪个实际数据库(我的脚本无法访问隧道参数)。
当我们创建一个新的数据库时,是否有一个GUID或某些东西被归因于它?也许我可以通过查询information_schema
答案 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
,以便您知道。