如何让mysql客户端提示反映您所使用的服务器';重新连接到,而不是本地的
我有两台服务器——serverA和serverB,都有mysql服务器和mysql客户端。我有一个从如何让mysql客户端提示反映您所使用的服务器';重新连接到,而不是本地的,mysql,my.cnf,Mysql,My.cnf,我有两台服务器——serverA和serverB,都有mysql服务器和mysql客户端。我有一个从serverB到serverA的反向SSH隧道,这样我就不必打开serverB到internet的端口。我从serverA访问serverB,方法是执行mysql--host 127.0.0.1--port 50003 如果我登录到serverA并执行mysql--host 127.0.0.1--port 3306我希望命令行提示符为me@serverA[dbname] 如果我登录到serverA
serverB
到serverA
的反向SSH隧道,这样我就不必打开serverB
到internet的端口。我从serverA
访问serverB
,方法是执行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
在serverA
和serverB
上使用/etc/my.cnf
中的提示符
指令,
如果我这样做
然后我得到me@127.0.0.1[dbname]
在它们两个上
如果我执行prompt=\u@serverA[\d]
在服务器A和提示符=\u@serverB[\d]
在服务器B上,然后我得到me@serverA[dbname]
我是否尝试连接到serverA
或serverB
因此,无论我实际连接到什么,命令提示符似乎都会在serverA
上拾取服务器的详细信息
有没有办法让提示反映我实际连接到的内容 提示设置是一个客户端选项。对于来自
serverA
的连接,唯一重要的配置文件是serverA
上的配置文件。在两个连接的提示中看到127.0.0.1
的原因是,从客户端的角度来看,两个连接都连接到127.0.0.1
MySQL客户机提供了一种指定选项组(命令行参数)的机制,您可以使用该机制来近似查找的内容。作为您需要的示例,您可以将以下内容添加到~/.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--defaults group suffix=serverB
连接到MySQL。客户端将根据您提供的后缀使用适当的主机、端口和提示符进行连接
如果不想全部键入,可以创建一个带后缀的shell函数并创建相应的命令行。这并不能解决所写的问题,但如果希望提示符不同的原因只是为了区分两个连接,则可以在提示符中包含端口
prompt=\u@\h:\p[\d]
应该可以工作。端口可以工作,但不以--skip slave start开头,两台服务器是相同的,因此需要在本地连接到它。似乎是客户端设置。也许您可以尝试从命令行mysql--prompt=“\u@\h[\d]>”--host--端口…
?
[clientserverA]
prompt = \u@serverA [\d]>
host = 127.0.0.1
[clientserverB]
prompt = \u@serverB [\d]>
host = 127.0.0.1
port = 50003