কীভাবে দূরবর্তী সংযোগটি মাইএসকিএলে অনুমতি দেয়


362

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

আমি এটা কিভাবে করবো?



1
আপনি যদি ডিজিটাল ওশান ব্যবহার করে থাকেন তবে আপনি ব্যবহারের চেষ্টা করতে পারেন sudo mysql_secure_installation। অবগতির জন্য।
অ্যালান ডং

কোড নয় এমন পাঠ্যের জন্য কোড বিন্যাস ব্যবহার করবেন না। অন্য প্রসঙ্গ.
লার্নের মারকুইস

@ এজেপি কেন? কৌতূহলের বাইরে সত্য প্রশ্ন
রেনি রথ

উত্তর:


776

মাইএসকিউএলে এটি ডিফল্টরূপে অনুমোদিত।

ডিফল্টরূপে যা অক্ষম করা হয়েছে তা হ'ল দূরবর্তী rootঅ্যাক্সেস। আপনি যদি এটি সক্ষম করতে চান তবে স্থানীয়ভাবে এই এসকিউএল কমান্ডটি চালান:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

এবং তারপরে নিম্নলিখিত লাইনটি সন্ধান করুন এবং এটি আপনার my.cnfফাইলে মন্তব্য করুন যা সাধারণত /etc/mysql/my.cnfইউনিক্স / ওএসএক্স সিস্টেমে থাকে। কিছু ক্ষেত্রে ফাইলের অবস্থান /etc/mysql/mysql.conf.d/mysqld.cnf)।

যদি এটি একটি উইন্ডোজ সিস্টেম হয় তবে আপনি এটি মাইএসকিউএল ইনস্টলেশন ডিরেক্টরিতে খুঁজে পেতে পারেন, সাধারণত এর মতো কিছু থাকে C:\Program Files\MySQL\MySQL Server 5.5\ এবং ফাইলের নামটিও হয়ে থাকে my.ini

পরিবর্তন লাইন

 bind-address = 127.0.0.1

প্রতি

 #bind-address = 127.0.0.1

পরিবর্তনগুলি কার্যকর হওয়ার জন্য মাইএসকিউএল সার্ভার পুনরায় চালু করুন ( ইউনিক্স / ওএসএক্স এবং উইন্ডোজ )।


4
ঠিক আছে তাই আমি ফাইলের শেষে বিনড-ঠিকানা = 127.0.0.1 যোগ করেছি এবং আমি বাহ্যিক হোস্ট থেকে নাভিচ্যাট ব্যবহার করে সংযোগ দেওয়ার চেষ্টা করেছি এবং আমি 10060 ত্রুটি পেয়েছি
লিও

7
হুম, আপনার এটি যুক্ত করার দরকার নেই। আমার উত্তরটি যেমন বলেছেন, আপনার এটি মন্তব্য করা দরকার, এটি যুক্ত করা উচিত নয়। সেখানে ডিফল্টরূপে একটি আছে, সুতরাং আপনার এটি খুঁজে বের করতে হবে এবং এটির সাথে
প্রাক

7
হুম, \ এমওয়াইএসকিএল সার্ভার 5.5 in-তে কেবল 1-আইআই ফাইল রয়েছে যা আমার-ডিফল্ট.আইএনআই নামে পরিচিত এবং # টি ছাড়া একমাত্র লাইনটি হ'ল: বর্গ_মোড = NO_ENGINE_SUBSTITUTION, স্ট্রিকT_TRANS_TABLES
লিও

2
এই উত্তর নিখুঁত কাজ করে। thnx @mjuarez - GRANT সব বিশেষ অধিকার অনুদানের বিকল্পের সাহায্যে 'রুট' @ '%' স্বীকৃত পাসওয়ার্ড দিয়ে ';
ইয়াদাবর

66
যারা my.cnfফাইলটি সন্ধান করছেন এবং এতে কোনও bind-addressদিকনির্দেশনা খুঁজে পাচ্ছেন না তাদের কাছে নোট করুন যে আমার ক্ষেত্রে (উবুন্টু ১.0.০৪.২-এর মাইএসকিউএল সংস্করণ ১৪.১৪) ফাইলটির অবস্থান ছিল/etc/mysql/mysql.conf.d/mysqld.cnf
অ্যাশ মেনন

49

উপরের সমস্ত কাজ করার পরেও আমি এখনও rootদূরবর্তী অবস্থান হিসাবে লগইন করতে পারি নি , তবে পোর্টে টেলনেটিং 3306নিশ্চিত করেছে যে MySQLসংযোগগুলি গ্রহণ করছে।

আমি মাইএসকিউএল ব্যবহারকারীদের দিকে তাকাতে শুরু করেছি এবং লক্ষ্য করেছি যে বিভিন্ন পাসওয়ার্ড সহ একাধিক রুট ব্যবহারকারী রয়েছে users

select user, host, password from mysql.user;

সুতরাং MySQLআমি আবার রুটের জন্য সমস্ত পাসওয়ার্ড সেট করেছিলাম এবং শেষ পর্যন্ত আমি দূরবর্তী হিসাবে লগ ইন করতে পারি root

use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;

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

1
আমার এই উত্তরটির সাথে গ্রহণযোগ্য উত্তরটি একত্রিত করা দরকার এবং তারপরে সবকিছু ঠিকঠাকভাবে কাজ করেছে।
জেমস

8
এসকিউএল 5.7 বা update user set authentication_string=password('YOUR_PASSWORD') where user='root';
তারও

গৃহীত উত্তরটি পাসওয়ার্ড সেট করে এবং আমার জন্য কাজ করে।
মাইককুলস

1
আপনাকে ধন্যবাদ, অনেকটা @ জেমসের মতো, আমাকে ঠিক করার জন্য গ্রহণযোগ্য উত্তরের সাথে এটি একত্রিত করতে হয়েছিল।
বেন ইভারার্ড

39

আমার অভিজ্ঞতার একটি নোট, আপনি এই পথের নীচে কনফিগারেশন ফাইলটি সন্ধান করতে পারেন /etc/mysql/mysql.conf.d/mysqld.cnf

(আমি এই পথটি খুঁজে পেতে কিছু সময়ের জন্য সংগ্রাম করেছি)


1
আপনি কোন বিতরণটি ব্যবহার করছেন তা এটির উপর নির্ভরশীল। সর্বোত্তম উপায় হ'ল কেবল এটি অনুসন্ধান করা:sudo find /etc -iname 'mysql*.cnf'
মার্টিন কনেকনি

আমি 'ফাইন্ড' কমান্ডের প্রশংসা করি। আমি কমান্ড লাইনে নতুন, তাই এটি খুব সহায়ক। ধন্যবাদ!
Heres2u

আমি /etc/mysq/conf.d/mysql.cnf সম্পাদনা করার সময় অবধি লড়াই করেছি যদিও আমি এই অকেজো দেখতে পেলাম।
গায়ান কবিরাথনে

26

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

যেমনটি পরিণত হয়েছে, বিভিন্ন সমাধান অনুসন্ধান করার সময়, আমি iptables জুড়ে এসেছি, যা আমাকে বুঝতে পেরেছিল যে মাইএসকিএল পোর্ট 3306 সংযোগ গ্রহণ করছে না।

আমি কীভাবে এই সমস্যাটি পরীক্ষা করে সমাধান করেছি সে সম্পর্কে এখানে একটি ছোট্ট নোট is

  • বন্দরটি সংযোগ গ্রহণ করছে কিনা তা পরীক্ষা করা হচ্ছে:
টেলনেট (মাইএসকিএল সার্ভার আইপি) [পোর্ট নন]
  • বন্দরে সংযোগের অনুমতি দেওয়ার জন্য আইপি টেবিলের নিয়ম যুক্ত করা:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • উত্পাদন পরিবেশের জন্য এটির সুপারিশ করবে না, তবে আপনার iptables সঠিকভাবে কনফিগার না করা থাকলে, বিধিগুলি যুক্ত করার পরেও সমস্যাটি সমাধান হবে না। সেক্ষেত্রে নিম্নলিখিতটি করা উচিত:
পরিষেবা iptables বন্ধ

আশাকরি এটা সাহায্য করবে.


17

মাইএসকিউএল ব্যবহারকারীর জন্য ওয়াইল্ডকার্ড রিমোট অ্যাক্সেস সেট করতে দয়া করে নীচে উল্লিখিত পদক্ষেপগুলি অনুসরণ করুন।

(1) খোলা সেমিডি।

(২) সি: \ প্রোগ্রাম ফাইলগুলি \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার ৫. এক্স \ বিনে নেভিগেট করুন এবং এই আদেশটি চালান।

mysql -u root -p

(3) মূল পাসওয়ার্ড লিখুন।

(4) অনুমতি প্রদানের জন্য নিম্নলিখিত কমান্ডটি কার্যকর করুন।

* * সমস্ত পাসওয়ার্ড অন * প্রদান করুন। * 'পাসওয়ার্ড' এর মাধ্যমে 'ব্যবহারকারী নাম' @ 'আইপি' সনাক্তকরণ;

ব্যবহারকারী নাম: আপনি মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে চান এমন ব্যবহারকারীর নাম।

আইপি: আপনি যেখান থেকে মাইএসকিউএল সার্ভারে অ্যাক্সেসের অনুমতি দিতে চান তা সর্বজনীন আইপি ঠিকানা।

পাসওয়ার্ড: ব্যবহারকারীর ব্যবহারকারীর পাসওয়ার্ড।

ব্যবহারকারীকে যে কোনও আইপি ঠিকানা থেকে সংযোগ করার অনুমতি দেওয়ার জন্য আইপি% দিয়ে প্রতিস্থাপন করা যেতে পারে।

(5) কমান্ড অনুসরণ করে এবং প্রস্থান করে বিচক্ষণতা ফ্লাশ করুন।

ফ্ল্যাশ বেসামালিকাগুলি;

থেকে প্রস্থান; বা \ কিউ

এখানে চিত্র বর্ণনা লিখুন


3
এটি করার পরে, আমার রুটে এখনও অ্যাক্সেস অস্বীকার করা হয়েছে। আমি কি মিস করেছি?
3:53 এ টিপিংগ en

চতুর্থ ধাপে আপনি% এর পরিবর্তে আপনার স্থানীয় সিস্টেমের আইপি ঠিকানা দিয়ে চেষ্টা করতে পারেন। এটি কাজ করা উচিত. % এর অর্থ কোনও আইপি ঠিকানা।
হিরেন পারঘি

6

যদি আপনার মাইএসকিউএল সার্ভার প্রক্রিয়াটি কেবল 127.0.0.1 বা :: 1 এ শুনছে তবে আপনি দূর থেকে সংযোগ করতে সক্ষম হবেন না। এতে যদি আপনার কোনও bind-addressসেটিং থাকে /etc/my.cnfতবে সমস্যাটির উত্স হতে পারে।

আপনাকে অ- localhostব্যবহারকারীর জন্যও বিশেষাধিকার যুক্ত করতে হবে ।


অদ্ভুত, কীভাবে আপনার সার্ভার অন্য আইপিতে "শ্রবণ" হতে পারে 127.0.0.1?
পেসারিয়ার

2
@ পেসারিয়র 127.0.0.1 কেবল লুপব্যাক ইন্টারফেসের সাথে আবদ্ধ। বাহ্যিক সংযোগগুলি কার্যকর হবে না। একটি সিস্টেমে প্রায়শই একাধিক নেটওয়ার্ক ইন্টারফেস থাকে, যার প্রত্যেকটির নির্দিষ্টভাবে আবদ্ধ হওয়া প্রয়োজন, অথবা আপনি বাইন্ড-সমস্ত 0.0.0.0 ঠিকানা ব্যবহার করতে পারেন।
tadman 23'15

6

যদি আপনি brewএটি থেকে মাইএসকিউএল ইনস্টল করে থাকেন তবে কেবলমাত্র স্থানীয় ইন্টারফেসে এটি ডিফল্টরূপে শুনতে পারে। এটিকে ঠিক করতে আপনাকে সম্পাদনা করতে হবে /usr/local/etc/my.cnfএবং এ bind-addressথেকে পরিবর্তন 127.0.0.1করতে হবে *

তারপরে দৌড়াও brew services restart mysql


1
আমার উবুন্টু 16.04.4 সার্ভারের জন্য, বাঁধাই করা-ঠিকানা সেটিং /etc/mysql/mysql.conf.d/mysqld.cnf হয়
ফ্রাঙ্ক

এটি কেবল মাতাল ব্যবহার করা নয়, যে কোনও মাইএসকিউএলের কেবলমাত্র স্থানীয় সংযোগের অনুমতি দেওয়ার জন্য এই ডিফল্ট সেটিংসটি থাকবে।
nivs1978

6

দূরবর্তী লগইন জন্য সমস্ত প্রক্রিয়া। রিমোট লগইনটি ডিফল্টরূপে বন্ধ। আপনাকে সমস্ত আইপি..র জন্য ম্যানুয়ালি খোলার প্রয়োজন সমস্ত আইপি অ্যাক্সেস দিতে

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';

নির্দিষ্ট আইপি

GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_desire_ip' IDENTIFIED BY 'password';

তারপর

flush privileges;

আপনি আপনার ব্যবহারকারীর হোস্ট এবং পাসওয়ার্ড পরীক্ষা করতে পারেন

SELECT host,user,authentication_string FROM mysql.user;

এখন আপনার দায়িত্ব এটি পরিবর্তন করা

bind-address = 127.0.0.1

আপনি এটি খুঁজে পেতে পারেন

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

যদি আপনি এটি সেখানে না পান তবে এটি চেষ্টা করুন

sudo nano /etc/mysql/my.cnf

এই মন্তব্য

#bind-address = 127.0.0.1

তারপরে মাইএসকিএল পুনরায় চালু করুন

sudo service mysql restart

এখন রিমোট লগইন উপভোগ করুন


3

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


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

2
আমি এই সমস্যা ছিল। মেঘ হোস্ট করা সার্ভারগুলির সাথে সাধারণ,
ম্যাথু লক

2

যার জন্য এটির প্রয়োজন, ফায়ারওয়াল পোর্ট 3306 চেক করুন, যদি আপনার ফায়ারওয়াল পরিষেবা চলমান থাকে।



1

এবং ওএস এক্স লোকের জন্য সচেতন থাকতে হবে যে বাইন্ড-অ্যাড্রেস প্যারামিটারটি সাধারণত লঞ্চ করা প্লিস্টে মাইআইআইআই ফাইলে সেট করা থাকে। সুতরাং আমার ক্ষেত্রে, আমি <string>--bind-address=127.0.0.1</string>এখান থেকে সরিয়েছি /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist


প্লাস্ট ফাইলের জন্য বিকল্প অবস্থান:~/Library/LaunchAgents
ডিলান নিসলে

1

যদি লুপব্যাক / স্থানীয় ঠিকানায় (যেমন ) mysqldএকটি বাইন্ড ঠিকানা সেট করা থাকে 127.0.0.1, তবে সার্ভারটি দূরবর্তী হোস্টগুলি থেকে পৌঁছানো যাবে না, কারণ কোনও দূরবর্তী হোস্ট থেকে লুপব্যাক ইন্টারফেসে পৌঁছানো যায় না।

যে কোনও হোস্টের সংযোগ গ্রহণ করতে এই বিকল্পটি 0.0.0.0( ::আইপিভি 4 + 6 এর জন্য) সেট করুন বা আপনি যদি কেবল একটি ইন্টারফেসে সংযোগের অনুমতি দিতে চান তবে অন্য কোনও বহিরাগত-ਪਹੁੰਚযোগ্য ঠিকানায় সেট করুন।

সূত্র


0

কিছু সময় উইন্ডোতে পিসির নাম ব্যবহার করা প্রয়োজন

প্রথম পদক্ষেপ) মাইএসকিএলের কনফিগারেশন ফাইলটিতে রাখুন:

mysqld.cnf SET বাইন্ড-ঠিকানা = 0.0.0.0

(টিসিপি / আইপি-র মাধ্যমে সংযোগগুলি পুনরুদ্ধার করতে)

দ্বিতীয় পদক্ষেপ) উইন্ডোজ উত্স, পর্ব নয় , পিসির নাম সহ, মাইএসকিএল, টেবিল ব্যবহারকারীদের ব্যবহারকারী করুন

এখানে চিত্র বর্ণনা লিখুন


0

রিমোট রুট অ্যাক্সেস সক্ষম করা বিপজ্জনক হতে পারে। আপনি আরও সীমাবদ্ধ অনুমতি নিয়ে ব্যবহারকারীর অ্যাকাউন্টগুলি সেট আপ করা ভাল be নিম্নলিখিত তিনটি পদক্ষেপ এটি করা উচিত।

  1. নিশ্চিত করুন যে এর সাথে শুরু হওয়া লাইনটি bind-address ...আপনার my.ini বা my.cnf ফাইলে কমপক্ষে মন্তব্য করেছে। যদি এটি বিদ্যমান না থাকে তবে এগিয়ে যান। আপনি C:\ProgramData\MySQL\MySQL Server 8.0উইন্ডোজ এই ফাইলটি খুঁজে পেতে পারেন ।

  2. এরপরে, আপনি যে ইউজার অ্যাকাউন্টটির সাথে সংযোগ স্থাপন করছেন সেটি localhostচূড়ান্তভাবে হোস্ট ম্যাচিংয়ের ক্ষেত্রের ক্ষেত্রে নেই check এটি প্রস্তাবিত নয়, আপনি পরিবর্তে %পরীক্ষার উদ্দেশ্যে সেই ক্ষেত্রে রাখতে পারেন । আপনি এটি মাইএসকিউএল ওয়ার্কবেঞ্চের সাথে সার্ভারে স্থানীয় সংযোগটি খোলার পরে মেনু বার থেকে সার্ভার> ব্যবহারকারী এবং সুবিধাগুলিতে যান এবং আপনি যে অ্যাকাউন্টটি যুক্ত হতে চান তা সন্ধান করে এটি করতে পারেন।

"হোস্ট ম্যাচিংয়ের সীমাবদ্ধতা" ক্ষেত্রটি আপনাকে অ-স্থানীয়ভাবে সংযোগ করতে অস্বীকার করে। অর্থাৎ এটি আইপি অ্যাড্রেসের এক ধরণের স্বীকৃত সংযোগগুলিকে সীমাবদ্ধ করে। আদর্শভাবে, আপনার একটি স্থির আইপি ঠিকানা বা সাবনেট থেকে মাইএসকিউএল সার্ভারটি অ্যাক্সেস করা উচিত, যাতে আপনি যথাসম্ভব সীমাবদ্ধ হতে পারেন।

  1. স্পষ্টতই, আপনার ফায়ারওয়ালটি মাইএসকিউএল সার্ভার অ্যাপ্লিকেশনটিকে আপনার যে পোর্টটি চান তা যোগাযোগের অনুমতি দেওয়া উচিত। আপনার এবং আপনার সার্ভারের মধ্যে থাকা শারীরিক নেটওয়ার্কিং সরঞ্জামগুলির সাথে আপনি যে পোর্টটির সাথে সংযোগ স্থাপন করতে চান তার যোগাযোগের অনুমতি দেওয়া উচিত। (পোর্ট 3306 সাধারণত)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.