问题描述
我已经安装了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