mysql --host=localhost --port=9999 mysql -u root -p --execute="show tables;"
无论我在
--port
参数中提供什么,命令都有效(连接到端口3306)。我有一台机器上运行着两个mysql服务器,并想通过显式提供其端口号连接到第二台mysql服务器。这是怎么回事?为什么mysql
会忽略此参数?#1 楼
当给出localhost
参数时,MySQL使用套接字。请改用127.0.0.1
。mysql --host=localhost --port=9999 mysql -u root -p --execute="show tables;"
--port
参数中提供什么,命令都有效(连接到端口3306)。我有一台机器上运行着两个mysql服务器,并想通过显式提供其端口号连接到第二台mysql服务器。这是怎么回事?为什么mysql
会忽略此参数?localhost
参数时,MySQL使用套接字。请改用127.0.0.1
。
评论
令人气愤的是,在mysql手册页上没有提到这一事实。
–詹纳克
16年11月15日在15:56
除了此处可接受的答案外,在此mysql bugreport中还可以找到更多解释,并且还链接到手册页。作为bugreport页面中的评论者之一,我也不明白为什么客户端至少在连接字符串中使用'localhost'时不会发出警告。
–bukva-ziu
17 Mar 26 '17在8:51
你是个救命的人!
– Touqeer Shafi
17-10-17在11:56
我现在已经使用mysql十年了,但这还没有实现,但是...
–pscheit
17/12/26在20:25
哇,令人难以置信的是,这种疯狂的错误在10年后仍然存在。.我想这足以说明Oracle以及MariaDb团队。需要明确的是:客户端实际上是使用port命令的,它会抱怨端口是否错误,但是会忽略该端口,而是通过套接字进行连接。找到此答案后,我便开始调试二进制文件。
–约翰
19/12/20在4:23