当前位置: 首页>>技术教程>>正文


如何测试MySQL在哪个端口上运行以及是否可以连接到该端口?

, ,

问题描述

我已经安装了MySQL,甚至以用户身份登录那里。

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

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

都不行。不确定两者是否都应该工作,但其中至少有一个应该:)

如何确定端口确实是3306?有Linux命令可以以某种方式查看它吗?另外,是否有更正确的方法通过网址进行尝试?

最佳思路

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

netstat -tln

如果mysql确实在该端口上侦听,您应该看到一条类似于以下内容的行。

tcp        0      0 127.0.0.1:3306              0.0.0.0:*                   LISTEN      

端口3306是MySql的默认端口。

要进行连接,您只需使用所需的任何客户端,例如基本的mysql客户端。

mysql -h localhost -u user database

或由您的库代码解释的URL。

次佳思路

使用Mysql客户端:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

第三种思路

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

要么

netstat -tlpn | grep mysql

校验

bind-address 127.0.0.1

在/etc/mysql/my.cnf中查看可能的限制

第四种思路

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则显示端口的数字版本而不是命名版本。

这样,您可以看到进程名称和端口。

第五种思路

仅尝试使用-e(--execute)选项:

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

用您的”username”和”password”替换root

第六种思路

两个网址都不正确-应该是

jdbc:mysql://host:port/database

我以为不用说,但是使用Java连接到数据库需要JDBC驱动程序。您将需要MySQL JDBC driver

也许您可以使用套接字通过TCP /IP进行连接。签出MySQL docs

参见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>

第八种思路

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

netstat -nl|grep 3306

它应该给出以下结果:

tcp 0 0 127.0.0.1:3306 0.0.0.0:*听

第九种思路

您可以使用

ps -ef | grep mysql

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7736.html,未经允许,请勿转载。