如何testingMySQL正在运行的端口以及是否可以连接?

我已经安装MySQL,甚至以用户身份login。

但是当我尝试像这样连接:

http://localhost:3306 mysql://localhost:3306 

两者都行不通。 不知道是否都应该工作,但至less有一个应该:)

我怎样才能确保港口确实是3306? 有没有一个Linux命令来看看它? 另外,有没有更正确的方法来通过url来尝试?

要在端口上查找侦听器,请执行以下操作:

 netstat -tln 

如果mysql确实在该端口上侦听,你应该看到一个如下所示的行。

 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 

端口3306是MySql的默认端口。

连接,你只需要使用任何你需要的客户端,如基本的MySQL客户端。

mysql -h localhost -u用户数据库

或者是由您的库代码解释的url。

使用Mysql客户端:

 mysql> SHOW GLOBAL VARIABLES LIKE 'PORT'; 

grep port /etc/mysql/my.cnf (至less在debian / ubuntu的作品中)

要么

 netstat -tlpn | grep mysql 
 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显示端口的数字版本,而不是指定版本。

通过这种方式,您可以看到进程名称和端口。

这两个url都是不正确的 – 应该是

 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是否在某个端口上,你可以在terminal中使用下面的命令。 在Mac上testing 3306是默认端口。

mysql --host=127.0.0.1 --port=3306

如果您成功login到MySQL shellterminal,那就太棒了! 这是我成功login的输出。

 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> 

3306是mysql的默认端口。 检查:

 netstat -nl|grep 3306 

它应该给这个结果:

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

只尝试使用-e--execute )选项:

 $ mysql -u root -proot -e "SHOW GLOBAL VARIABLES LIKE 'PORT';" (8s 26ms) +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ 

用你的“用户名”和“密码”replaceroot

您可以使用

 ps -ef | grep mysql 

我同意@ bortunac的解决scheme。 my.conf是特定于mysql的,而netstat会为你提供所有的监听端口。

也许使用两者,一个确认哪个是为mysql设置的端口,另一个是通过该端口来检查系统是否正在监听。

我的客户使用CentOS 6.6,并且在/ etc /下find了my.conf文件,所以我使用了:

grep port /etc/my.conf 6.6)

如果你在一个没有netstat的系统上(例如RHEL 7和更新的Debian版本),你可以使用ss ,如下所示:

 sudo ss -tlpn | grep mysql 

你会得到如下的输出:

 LISTEN 0 50 *:3306 *:* users:(("mysqld",pid=5307,fd=14)) 

第四列是Local Address:Port 。 所以在这种情况下,Mysql正在侦听默认端口3306。