web-dev-qa-db-ja.com

どのポートでMySQLが動作しているのか、そして接続できるかどうかをテストするにはどうすればいいですか?

私はMySQLをインストールし、ユーザーとしてそこにログインさえしました。

しかし、私がこのように接続しようとすると:

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

どちらも動作しません。両方がうまくいくかどうかは定かではありませんが、少なくともどちらか一方がうまくいくはずです:)

ポートが本当に3306であることをどのように確認できますか?どういうわけかそれを見るためのlinuxコマンドはありますか?また、URL経由でそれを試すもっと正しい方法はありますか?

130
GeekedOut

ポート上のリスナーを見つけるには、次のようにします。

netstat -tln

Mysqlが実際にそのポートで待機している場合は、このような行が表示されるはずです。

tcp        0      0 127.0.0.1:3306              0.0.0.0:*                   LISTEN      

ポート3306はMySqlのデフォルトポートです。

接続するには、基本的なmysqlクライアントなど、必要なクライアントをすべて使用する必要があります。

mysql -h localhost -uユーザーデータベース

またはあなたのライブラリコードによって解釈されるURL。

196
Keith

MySQLクライアントを使用する:

mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
131
enagra

grep port /etc/mysql/my.cnf(少なくともdebian/ubuntuの作品では)

または

netstat -tlpn | grep mysql

確認する

バインドアドレス127.0.0.1

/etc/mysql/my.cnfで制限を確認してください。

59
bortunac
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

すべての詳細についてはrootとして使用してください。 -tオプションは出力をTCP接続に制限します。リスニングポートの場合は-l、プログラム名のリストは-p、名前付きバージョンの代わりにポートの数値バージョンの場合は-nを示します。

これにより、プロセス名とポートを確認できます。

30
mPrinC

-e--execute)オプションのみを使ってみてください。

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

rootをあなたの "username"と "password"に置き換えてください

7
joseluisq

両方のURLが正しくありません。

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 を参照してください。

更新:

MySQL(telnet ip 3306)にtelnetしようとしましたが、うまくいきません。

http://lists.mysql.com/win32/25

私はこれがあなたが念頭に置いていたものだと思います。

6
duffymo

いくつかのより簡単なアプローチ:MySQLが特定のポートにあるかどうかを確認したいだけなら、ターミナルで以下のコマンドを使うことができます。 Mac上でテスト済み。 3306がデフォルトのポートです。

mysql --Host=127.0.0.1 --port=3306

MySQLシェル端末に正常にログインできたら、問題ありません。これは私が成功したログインで得られる出力です。

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>
5
Monarch Wadia

3306はmysqlのデフォルトポートです。以下で確認してください。

netstat -nl|grep 3306

それはこの結果を与えるはずです:

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

5
zygimantus

あなたが使用することができます

ps -ef | grep mysql
3
don625

Mac OS Xでは、2つの選択肢があります。 netstatまたはlsof

netstatを使用しても、Mac OS Xではプロセスは表示されません。そのため、netstatを使用すると、ポートでのみ検索できます。
lsofを使用すると、プロセス名が表示されます。

私はポートの衝突(港湾労働者のコンテナ)に遭遇していたので、私は以下をしました:

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)

2
toddcscar

私にとっては、@ joseluisqの答えは次のようになりました。

エラー1045(28000):ユーザ 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)

しかし、それはこのように働いた:

$ mysql -u [email protected]  -e "SHOW GLOBAL VARIABLES LIKE 'PORT';"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
2
Jose J Melendez

netstatが利用できないシステム(例:RHEL 7以降のDebianリリース)であれば、以下のようにssを使用できます。

Sudo ss -tlpn | grep mysql

そして、あなたは出力のために次のようなものを得るでしょう:

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

4列目はLocal Address:Portです。そのため、この場合、Mysqlはデフォルトのポート3306で待機しています。

1
nelsonda

私は@ bortunacの解決策に同意します。 my.confはMySQL固有のものですが、netstatはすべての待機ポートを提供します。

おそらく両方を使用してください。1つはmysql用に設定されたポートであることを確認するため、もう1つはシステムがそのポートを通して待機していることを確認するためです。

私のクライアントはCentOS 6.6を使っていて、私は/ etc /の下にmy.confファイルを見つけたので、私は使った:

grep port /etc/my.conf(CentOS 6.6)

1
mmmdearte