কোন পোর্ট মাইএসকিউএল চালু রয়েছে তা কীভাবে পরীক্ষা করা যায় এবং এটির সাথে সংযুক্ত করা যায় কিনা?


143

আমি মাইএসকিউএল ইনস্টল করেছি এবং এমনকি একজন ব্যবহারকারী হিসাবে সেখানে লগ ইন করেছি।

তবে যখন আমি এই জাতীয় সংযোগ দেওয়ার চেষ্টা করি:

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

কোনটিই কাজ করে না। দু'জনের কাজ করার কথা কিনা তা নিশ্চিত নয়, তবে তাদের মধ্যে কমপক্ষে একজনের উচিত :)

আমি কীভাবে নিশ্চিত করতে পারি যে বন্দরটি সত্যই 3306 রয়েছে? এটি কোনওভাবে দেখার জন্য একটি লিনাক্স আদেশ আছে? এছাড়াও, কোনও ইউআরএল মাধ্যমে এটি চেষ্টা করার আরও সঠিক উপায় আছে?

উত্তর:


207

একটি বন্দরে শ্রোতা খুঁজে পেতে, এটি করুন:

netstat -tln

মাইএসকিএল সত্যিকার অর্থে সেই বন্দরে শুনছে এমন একটি লাইন দেখতে পাওয়া উচিত see

tcp        0      0 127.0.0.1:3306              0.0.0.0:*                   LISTEN      

পোর্ট 3306 মাইএসকিএল এর ডিফল্ট বন্দর।

সংযোগ করতে, আপনাকে কেবল ক্লায়েন্টের প্রয়োজন মতো, যেমন বেসিক মাইএসকিএল ক্লায়েন্ট ব্যবহার করতে হবে।

mysql -h লোকালহোস্ট-ইউ ব্যবহারকারীর ডাটাবেস

অথবা আপনার লাইব্রেরি কোড দ্বারা ব্যাখ্যা করা একটি url।


2
127.0.0.1:3306 এর পরিবর্তে 0.0.0.0:3306 বলার অর্থ কী?
mbmast

1
@ এমএমএম 12 12 ... এর অর্থ কেবল স্থানীয় হোস্টে শুনুন (বাহ্যিকভাবে অ্যাক্সেসযোগ্য নয়)। 0.0.0.0 এর অর্থ "সমস্ত ইন্টারফেস" এবং তাই (সাধারণত) বাহ্যিকভাবে দৃশ্যমান।
কিথ

আমি ভেবেছিলাম বাহ্যিকভাবে দৃশ্যমান, এটি মেশিনের নিজস্ব আইপি ঠিকানা হতে হবে এবং 0.0.0.0 এর অর্থ পরিষেবাটি কোথাও থেকে পাওয়া যায় না। আমার কি ভুল আছে? আমার মাইএসকিউএল চালিত একটি বাক্স রয়েছে, ফায়ারওয়ালটিতে কোনও আইপি ঠিকানা থেকে 3306 খোলা আছে তবে মাইএসকিউএল সংযোগটি প্রত্যাখ্যান করছে, আমি ভেবেছিলাম যে বর্তমানে মাইএসকিউএল 0.0.0.0 এ শুনছে।
mbmast

এটিটিকে @ বার্টুনাকের উত্তরের সাথে একীভূত করা উচিত যা -pপ্যারামিটারের উল্লেখ করে । প্রক্রিয়া (এস) যুক্ত করা এই তথ্যটিকে আরও কার্যকর করতে সাহায্য করে।
রাগার

1
লিনাক্সের জন্য @ জেবেক তিনটি পতাকা। টিসিপি, শ্রোতা, নাম অনুসন্ধান নেই। দেখতে man netstat
কিথ


65

grep port /etc/mysql/my.cnf (কমপক্ষে ডেবিয়ান / উবুন্টু কাজের ক্ষেত্রে)

অথবা

netstat -tlpn | grep mysql

যাচাই

বাইন্ড-ঠিকানা 127.0.0.1

/etc/mysql/my.cnf এ সম্ভাব্য সীমাবদ্ধতা দেখতে see


32
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শো পরিবর্তে বন্দর সাংখ্যিক সংস্করণ একটি নামে সংস্করণ।

এই পদ্ধতিতে আপনি প্রক্রিয়াটির নাম এবং পোর্টটি দেখতে পাবেন।


1
আমার পক্ষে কাজ করেনি - আমি "tcp 0 0 127.0.0.1:3306 0.0.0.0:* তালিকা পেয়েছি -"
ব্রায়ান

7

শুধুমাত্র -e( --execute) বিকল্পটি ব্যবহার করে দেখুন :

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

rootআপনার "ব্যবহারকারী নাম" এবং "পাসওয়ার্ড" দ্বারা প্রতিস্থাপন করুন


6

দুটি ইউআরএলই ভুল - হওয়া উচিত

jdbc:mysql://host:port/database

আমি ভেবেছিলাম এটি বলার অপেক্ষা রাখে না, তবে জাভার সাথে একটি ডাটাবেসের সাথে সংযুক্ত হওয়ার জন্য জেডিবিসি ড্রাইভার দরকার। আপনার মাইএসকিউএল জেডিবিসি ড্রাইভার লাগবে ।

হতে পারে আপনি সিসকেটি টিসিপি / আইপি ব্যবহার করে সংযোগ করতে পারেন। মাইএসকিউএল ডক্স পরীক্ষা করে দেখুন ।

Http://dev.mysql.com/doc/refman/5.0/en/connector-j-references-configration-properties.html দেখুন

হালনাগাদ:

আমি মাইএসকিউএল ( telnet ip 3306) তে টেলনেট করার চেষ্টা করেছি , তবে এটি কার্যকর হয় না:

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

আমি মনে করি এটি আপনার মনে ছিল।


আমি আমার কোডটিতে এটি চেষ্টা করার সময় কাজ করা হয়নি বলে মনে হয়েছে :( এছাড়াও আমি যখন এটি একটি ব্রাউজারে পেস্ট করেছি তখন ফায়ারফক্স বলেছিল যে এটি এমন কিছুই খুলতে পারে না Where আমি কোথায় / কীভাবে চেষ্টা করে দেখতে পারি? - আপনাকে ধন্যবাদ!
গীকাকআউট

হ্যাঁ, আপনি এটি ব্রাউজারে খুলতে পারবেন না। আপনার মাইএসকিউএল জেডিবিসি ড্রাইভার এবং জাভা কোড দরকার।
ডাফাইমো

3
আপনি জাভা ব্যবহার করছেন শুধুমাত্র যদি।
কিথ

আমি এটি ডাটাবেস.আইএমএল ফাইলের মাধ্যমে রুবে অন রেল ব্যবহার করে সেট আপ করার চেষ্টা করছি। তবে আমার ঠিক পোর্ট নম্বর দরকার ছিল।
GeekedOut

এটি আসলে প্রশ্নের উত্তর দেয় না।
এ্যাসোফার

6

কারওর জন্য একটি সহজ পদ্ধতির: আপনি যদি কেবল মাইএসকিউএল একটি নির্দিষ্ট বন্দরে রয়েছে কিনা তা পরীক্ষা করতে চান, আপনি টার্মিনালে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন। ম্যাক পরীক্ষিত। 3306 ডিফল্ট বন্দর port

mysql --host=127.0.0.1 --port=3306

আপনি যদি মাইএসকিউএল শেল টার্মিনালে সফলভাবে লগ ইন করেন তবে আপনি ভাল! এটি একটি সফল লগইন এ আমি আউটপুট পেতে।

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

3306 মাইএসকিএলের জন্য ডিফল্ট পোর্ট। এটি দিয়ে পরীক্ষা করুন:

netstat -nl|grep 3306

এটি এই ফলাফল দেওয়া উচিত:

tcp 0 0 127.0.0.1:3306 0.0.0.0:* তালিকা করুন



3

আমার জন্য, @ জোসেলুয়াস্কের উত্তর এলো:

ত্রুটি 1045 (28000): ব্যবহারকারীর 'রুট' @ 'লোকালহোস্ট' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: না)

তবে এটি এইভাবে কাজ করেছে:

$ mysql -u root@localhost  -e "SHOW GLOBAL VARIABLES LIKE 'PORT';"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+

3

ম্যাক ওএস এক্সে দুটি বিকল্প রয়েছে। netstatঅথবাlsof

ব্যবহার netstatআপনি netstat কমান্ড ব্যবহার করে শুধুমাত্র বন্দর অনুসন্ধান করতে পারেন, যাতে ম্যাক OS X উপর প্রক্রিয়া দেখাবে না।
ব্যবহার 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

আপনি যদি এমন কোনও সিস্টেমে থাকেন যেখানে netstatউপলভ্য নয় (উদাহরণস্বরূপ RHEL 7 এবং আরও সাম্প্রতিক ডেবিয়ান প্রকাশ) আপনি ssনীচের মত ব্যবহার করতে পারেন :

sudo ss -tlpn | grep mysql

এবং আপনি আউটপুট জন্য নিম্নলিখিত মত কিছু পাবেন:

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

চতুর্থ কলামটি হ'ল Local Address:Port। সুতরাং এই ক্ষেত্রে মাইএসকিএল 3306 পোর্টে ডিফল্ট শুনছে।


1

আমি @ বোর্টুনাকের সমাধানের সাথে একমত মাইকনফ মাইএসকিএল নির্দিষ্ট, যখন নেটস্পট আপনাকে সমস্ত শ্রবণ পোর্ট সরবরাহ করবে।

সম্ভবত দু'টি ব্যবহার করুন, একটিটি মাইএসকিএল-র জন্য কোন পোর্ট সেট রয়েছে তা নিশ্চিত করতে এবং অন্যটি পরীক্ষা করে দেখুন যে সিস্টেমটি সেই বন্দরের মাধ্যমে শুনছে।

আমার ক্লায়েন্টটি CentOS 6.6 ব্যবহার করে এবং আমি my.conf ফাইলটি / etc / এর অধীনে পেয়েছি, সুতরাং আমি ব্যবহার করেছি:

grep port /etc/my.conf (সেন্টস 6..6)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.