如何使mysql客户端提示符反映您所连接的服务器,而不是本地服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使mysql客户端提示符反映您所连接的服务器,而不是本地服务器相关的知识,希望对你有一定的参考价值。
我有2台服务器-serverA和serverB,都具有mysql服务器和mysql客户端。我有一个从serverB
到serverA
的反向SSH隧道,因此我不必打开server B
上的端口即可访问互联网。我通过执行serverB
serverA
访问mysql --host 127.0.0.1 --port 50003
如果我登录到serverA并执行mysql --host 127.0.0.1 --port 3306
,我希望命令行提示符为me@serverA [dbname]
。如果我登录到serverA并执行mysql --host 127.0.0.1 --port 50003
,我希望命令行提示符为me@serverB [dbname]
。
对于这些示例,我总是登录到serverA
,并将mysql客户端连接到serverA
或serverB
使用prompt
和/etc/my.cnf
上serverA
中的serverB
指令,如果我这样做
[mysql]
prompt = u@h [d]
然后我俩都得到了me@127.0.0.1 [dbname]
。
如果我在服务器A上执行prompt = u@serverA [d]
,在服务器B上执行prompt = u@serverB [d]
,则无论我要连接到me@serverA [dbname]
还是serverA
,我都会得到[C0
因此,无论我实际连接的是什么,命令提示符似乎都在serverB
上获取服务器的详细信息。
有什么方法可以使提示反映我实际连接的对象?
serverA
设置是客户端选项。对于来自prompt
的连接,唯一重要的配置文件是serverA
上的配置文件。您在提示符下看到两个连接的原因是serverA
,原因是从客户端的角度来看,两个连接都连接到127.0.0.1。
MySQL客户端提供了一种用于指定选项组的机制(命令行参数127.0.0.1
),您可以使用它来近似您要寻找的内容。作为满足您需求的示例,您可以将以下内容添加到--default-groups-suffix文件中:
~/.my.cnf
使用此,您可以使用[clientserverA]
prompt = u@serverA [d]>
host = 127.0.0.1
[clientserverB]
prompt = u@serverB [d]>
host = 127.0.0.1
port = 50003
或mysql --defaults-group-suffix=serverA
连接到MySQL。客户端将根据您提供的后缀使用适当的主机,端口和提示进行连接。
如果您不想全部输入,则可以创建一个带后缀的shell函数并创建适当的命令行。
以上是关于如何使mysql客户端提示符反映您所连接的服务器,而不是本地服务器的主要内容,如果未能解决你的问题,请参考以下文章
Native for MySQL 客户端连接MySQL8 提示10061错误解决方案
Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
远程连接mysql时,提示“is not allowed to connect to this MySQL server”的解决方法