রিমোট সংযোগগুলি মাইএসকিএল উবুন্টু


97

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

root@server1:/home/administrator# mysql -u monty -p -h www.ganganadores.cl
Enter password:
ERROR 1045 (28000): Access denied for user 'monty'@'server1.ganganadores.cl' (using password: YES)

এখন, আমি দৌড়ানোর চেষ্টা করেছি

 GRANT ALL ON *.* to monty@localhost IDENTIFIED BY 'XXXXX'; 
 GRANT ALL ON *.* to monty@'%' IDENTIFIED BY 'XXXXXX';` 

এবং এখনও কিছুই না! আমি কি ভুল করছি?

সম্পাদনা : my.cnfবাইন্ড আইপি মন্তব্য করেছে।


আপনি মাইএসকিউএল এর কোন সংস্করণ ব্যবহার করছেন?
স্টিভ

সার্ভার সংস্করণ: 5.5.29-0ubuntu0.12.10.1 (উবুন্টু)
ক্রিশ্চিয়ান এডুয়ার্ডো লেহিগেডি লিয়ন

এই আদেশ কি ফিরে আসে? উবুন্টু ~ $ সুডো lsof -i -P |
গ্রেপ

উত্তর:


348

লোকালহোস্ট ব্যতীত অন্য কোনও কিছুর সাথে মাইএসকিউএল প্রকাশের জন্য আপনার নীচের লাইনটি থাকতে হবে

মাইএসকিএল সংস্করণ 5.6 এবং নীচের জন্য

/etc/mysql/my.cnfআপনার কম্পিউটারের আইপি অ্যাড্রেসটি নিরক্ষিত এবং নির্ধারণ করা হয়েছে এবং লুপব্যাক নয়

মাইএসকিএল সংস্করণটির জন্য above.7 এবং তার বেশি

/etc/mysql/mysql.conf.d/mysqld.cnfআপনার কম্পিউটারের আইপি অ্যাড্রেসটি নিরক্ষিত এবং নির্ধারণ করা হয়েছে এবং লুপব্যাক নয়

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

অথবা bind-address = 0.0.0.0আপনি আইপি নির্দিষ্ট করতে না চাইলে একটি যুক্ত করুন

তারপরে নতুন My.cnf এন্ট্রি সহ বন্ধ করে মাইএসকিউএল পুনরায় চালু করুন। একবার চালানোর পরে টার্মিনালে যান এবং নিম্নলিখিত কমান্ডটি প্রবেশ করুন।

lsof -i -P | grep :3306

এক্সএক্সএক্স-এ আপনার আসল আইপি দিয়ে এমন কিছু ফিরে আসা উচিত

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

যদি উপরের বিবৃতিটি সঠিকভাবে ফিরে আসে তবে আপনি দূরবর্তী ব্যবহারকারীদের গ্রহণ করতে সক্ষম হবেন। তবে দূরবর্তী ব্যবহারকারীর সঠিক প্রাইভেলিজগুলির সাথে সংযোগ স্থাপনের জন্য আপনার সেই লোকালহোস্ট এবং '%' উভয়ই তৈরি করা দরকার।

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

তারপর,

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

এবং পরিশেষে,

FLUSH PRIVILEGES; 
EXIT;

উপরের মতো একই ব্যবহারকারী যদি আপনার না তৈরি হয় তবে আপনি স্থানীয়ভাবে লগইন করার সময় আপনি বেস লোকালহোস্ট সুবিধা পেতে পারেন এবং অ্যাক্সেসের সমস্যা থাকতে পারে। আপনি যদি অ্যাক্সেস মাইউসারকে সীমাবদ্ধ রাখতে চান তবে আপনাকে গ্রান্ট স্টেটমেন্ট সিনট্যাক্সটি পড়তে হবে এখানে যদি আপনি এই সমস্ত কিছুটি দেখতে পান এবং এখনও কিছু অতিরিক্ত ত্রুটি আউটপুট এবং my.cnf উপযুক্ত লাইন পোস্ট করেন তবে সমস্যাগুলি রয়েছে।

উল্লেখ্য: lsof ফেরত দেয় না পারেন বা পাওয়া যায় না আপনি এটি ইনস্টল করতে পারেন এখানে আপনার Linux ডিস্ট্রিবিউশন উপর ভিত্তি করে। জিনিসগুলিকে কাজ করতে আপনার প্রয়োজন নেই, তবে জিনিসগুলি যখন প্রত্যাশা অনুযায়ী কাজ করে না তখন তা খুব কার্যকর।


4
ধন্যবাদ, যদিও এই পদক্ষেপগুলি আমি প্রথমবার যথাযথভাবে অনুসরণ করেছি, আপনি পোস্ট করার সময় এবং মনোমুগ্ধকর মতো কাজ করার পরে আমি সেগুলি আবার করেছি!
ক্রিশ্চিয়ান এদুয়ার্দো লেহুয়েডে লিয়ন

14
অন্য কারও সাথে লড়াই করে lsof -i -P | grep :3306, এটি কাজ করে না তবে রিমোট সংযোগটি এখনও নিশ্চিত হওয়া ছাড়া ঠিক কাজ করে, আপনি যদি সঠিক আউটপুট না দেখেন তবে তা অগ্রাহ্য করুন।
মাইক এস 16

@ মাইক স্লুটস্কি নোটটির জন্য ধন্যবাদ, আমি আমার উত্তরটি সম্পাদনা করেছি। ইতিমধ্যে ইনস্টল না করা থাকলে আপনি lsof ইনস্টল করতে পারেন।
অপেসা

4
অনেক সিস্টেমে FWIW এর sudo lsof -i -Pচেয়ে অনেক বেশি দরকারী হবে lsof -i -P(ধরে নিবেন আপনি একটি অনিবদ্ধ ব্যবহারকারী হিসাবে লগ ইন করেছেন)।
ড্যান পাসারো

4
lsof -i -P | grep :3306কিছু ফেরত না!
সবুজ

39

এপিসার দুর্দান্ত পোস্টের শীর্ষে কয়েকটি পয়েন্ট যুক্ত করুন:

1) আপনি নীচের কমান্ডটি আইপি অ্যাড্রেস মাইএসকিএল সার্ভার শুনছেন তা পরীক্ষা করতে পারেন

netstat -nlt | grep 3306

sample result:

tcp 0  0  xxx.xxx.xxx.xxx:3306  0.0.0.0:*   LISTEN

2) FLUSH PRIVILEGESকোনও কারণে যদি পরিবর্তনগুলি তত্ক্ষণাত কার্যকর না হয় তবে গ্রান্ট টেবিলগুলি লোড করতে বাধ্য করার জন্য ব্যবহার করুন

GRANT ALL ON *.* TO 'user'@'localhost' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
FLUSH PRIVILEGES; 
EXIT;

ব্যবহারকারীর == আপনি মাইএসকিএল সংযোগ করতে ব্যবহার করেন ex.root
passwd == আপনি যে পাসওয়ার্ডটি mysql এর সাথে সংযোগ করতে ব্যবহার করেন

3) যদি মাইএসকিএল sudo ufw enableসার্ভার মেশিনে নেটফিল্টার ফায়ারওয়াল সক্ষম করা থাকে ( ), দূরবর্তী অ্যাক্সেসের জন্য 3306 পোর্টটি খুলতে নিম্নলিখিতগুলি করুন:

sudo ufw allow 3306

ব্যবহার স্থিতি পরীক্ষা করুন

sudo ufw status

4) একবার একটি দূরবর্তী সংযোগ স্থাপন করা হয়, এটি কমান্ড ব্যবহার করে ক্লায়েন্ট বা সার্ভার মেশিনে যাচাই করা যায়

netstat -an | grep 3306
netstat -an | grep -i established

4
এটি আমার পুরো দিন বাঁচায়! ধন্যবাদ sudo ufw status!!
iddদ্ধিমান আদিব

netstat -nlt | grep 3306খালি ফিরে আসে
জোও পিমেন্টেল

@ জোওো পাইমেন্তেল ফেরেেরা নিশ্চিত করুন যে মাইএসকিএল প্রথমে চলছে, যাচাই করতে "/etc/init.d/mysql অবস্থা" কমান্ডটি ব্যবহার করুন
জোনাথন এল

8

মাইএসকিউএল কেবল লোকালহোস্টের শোনায়, যদি আমরা এটিতে দূরবর্তী অ্যাক্সেস সক্ষম করতে চাই তবে আমাদের মাই সিএনএফ ফাইলটিতে কিছু পরিবর্তন করা দরকার:

sudo nano /etc/mysql/my.cnf

আমাদের বাইন্ড-ঠিকানাটি মন্তব্য করতে হবে এবং বাহ্যিক-লকিং লাইনগুলি এড়িয়ে যেতে হবে:

#bind-address = 127.0.0.1
# skip-external-locking

এই পরিবর্তনগুলি করার পরে, আমাদের মাইএসকিএল পরিষেবাটি পুনরায় চালু করতে হবে:

sudo service mysql restart

4
মন্তব্য করতে ভুলবেন নাskip-external-locking
কালেবীয়ার

4
আমি স্কিপ-বাহ্যিক-লকিং সম্পর্কে মন্তব্য করি নি এবং এটি এখনও কার্যকর।
মার্সিয়া ওং

আমাকে এটিকে পরিবর্তন করতে হয়েছিল /etc/mysql/mysql.conf.d
বার্তান্দো

আমার এই অবস্থান:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
লেস্টার

1

যদি উইন্ডোজটিতে পরীক্ষা করা হয় তবে 3306 পোর্টটি খুলতে ভুলবেন না।


আহ আপনি একজন প্রতিভা, এটি অতি গুরুত্বপূর্ণ যদি আপনি লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেমটি ব্যবহার করেন তবে আপনাকে উইন্ডোজ ফায়ারওয়ালের মাধ্যমে অভ্যন্তরীণ ট্র্যাফিকের জন্য 3306 পোর্ট খুলতে হবে, এবং মাইএসকিউএল শুনছে কিনা তা উপরের বিষয়গুলির কোনওটিই খতিয়ে দেখেনি সাবসিস্টেম
ব্রায়ান লেশম্যান

1

আপনি উবুন্টু 12 ব্যবহার করছেন (বেশ পুরানো)

প্রথমে, উবুন্টু 14.04 এবং আগের সংস্করণগুলিতে /etc/mysql/mysql.conf.d/mysqld.cnf ফাইল ( /etc/mysql/my.cnf) খুলুন

[মাইকিকিএলডি] এর নীচে লাইনটি সন্ধান করুন, বাইন্ড-ঠিকানা = 127.0.0.1 এবং এটিকে পরিবর্তন করুন, বাইন্ড-ঠিকানা = 0.0.0.0 বা মন্তব্য করুন

তারপরে, উবুন্টু মাইকিউএল সার্ভারটি পুনরায় চালু করুন systemctl restart mysql.service

এখন উবুন্টু সার্ভার মাইএসকিউএল সার্ভারে দূরবর্তী অ্যাক্সেসের অনুমতি দেবে, তবে এখনও আপনাকে কোনও হোস্টের অ্যাক্সেসের অনুমতি দিতে মাইএসকিউএল ব্যবহারকারীদের কনফিগার করতে হবে।

ব্যবহারকারীকে অবশ্যই 'username'@'%'প্রয়োজনীয় সমস্ত অনুদানের সাথে থাকতে হবে

মাইএসকিউএল সার্ভারটি সমস্ত ইন্টারফেসে শুনেছে তা নিশ্চিত করার জন্য, নীচে নেটস্যাটট কমান্ডটি চালান।

netstat -tulnp | grep mysql

আশা করি এই কাজ!

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