Answers:
要在端口上找到侦听器,请执行以下操作:
netstat -tln
如果mysql确实在该端口上侦听,您应该看到一条类似于以下内容的行。
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
端口3306是MySql的默认端口。
要进行连接,您只需使用所需的任何客户端,例如基本的mysql客户端。
mysql -h localhost -u用户数据库
或由您的库代码解释的URL。
-p
参数。添加过程确实有助于使此信息更有用。
man netstat
。
使用Mysql客户端:
mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
netstat -tlpn
它将显示如下列表:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1393/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1859/master
tcp 0 0 123.189.192.64:7654 0.0.0.0:* LISTEN 2463/monit
tcp 0 0 127.0.0.1:24135 0.0.0.0:* LISTEN 21450/memcached
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 16781/mysqld
用作所有详细信息的根目录。该-t
选项将输出限制为TCP连接,-l
用于侦听端口,-p
列出程序名称并-n
显示端口的数字版本,而不是命名版本。
这样,您可以看到进程名称和端口。
两个网址都不正确-应该是
jdbc:mysql://host:port/database
我以为不用说,但是使用Java连接到数据库需要JDBC驱动程序。您将需要MySQL JDBC驱动程序。
也许您可以使用套接字通过TCP / IP进行连接。查看MySQL文档。
参见http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html
更新:
我尝试通过telnet进入MySQL(telnet ip 3306
),但无法正常工作:
http://lists.mysql.com/win32/253
我认为这就是您的想法。
一种简单的方法:如果您只想检查MySQL是否在某个端口上,则可以在终端中使用以下命令。在Mac上测试。3306是默认端口。
mysql --host=127.0.0.1 --port=3306
如果您成功登录到MySQL Shell终端,那就太好了!这是成功登录后得到的输出。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9559
Server version: 5.6.21 Homebrew
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
在Mac OS X上,有两个选项。 netstat
要么lsof
使用netstat
不会在Mac OS X上显示该过程。因此,使用netstat只能按端口搜索。
使用lsof
将显示进程名称。
遇到端口冲突(docker容器)时,我做了以下操作:
netstat -aln | grep 3306
输出:
tcp46 0 0 *.3306 *.* LISTEN
sudo lsof -i -P | grep -i "LISTEN" | grep -i 3306
输出:
mysqld 60608 _mysql 31u IPv6 0x2ebc4b8d88d9ec6b 0t0 TCP *:3306 (LISTEN)