মাইএসকিউএল ব্যবহারকারীকে দূরবর্তী অ্যাক্সেসের জন্য যুক্ত করছে


148

আমি user@'%'দিয়ে ব্যবহারকারী তৈরি করেছি password 'password। তবে আমি এর সাথে সংযোগ করতে পারি না:

mysql_connect('localhost:3306', 'user', 'password');

আমি যখন ব্যবহারকারী তৈরি করেছি তখন আমি user@'localhost'সংযোগ করতে সক্ষম হয়েছি। কেন? '%' এর অর্থ কোনও হোস্ট থেকে নেই?


নোট করুন যে ব্যবহারকারী @ লোকালহোস্ট এবং ব্যবহারকারীর @% এর পাসওয়ার্ডটি সাধারণভাবে আলাদা, পাশাপাশি সুবিধাগুলি।
হোসে ম্যানুয়েল গোমেজ আলভারেজ

উত্তর:


377

দূরবর্তীভাবে সংযোগ করতে আপনার মাইএসকিউএল বাইন্ড পোর্টটি মাই সিএনএফ-এ আপনার মেশিনের আইপি ঠিকানায় 3306 থাকতে হবে। তারপরে আপনাকে লোকালহোস্ট এবং '%' ওয়াইল্ডকার্ড উভয় ক্ষেত্রেই ব্যবহারকারী তৈরি করতে হবে এবং সমস্ত ডিবি-তে এর জন্য অনুমতি প্রদান করতে হবে নিচে দেখ:

my.cnf (উইন্ডোতে my.ini)

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

তারপর

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;

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


1
এটি আমাকে ওয়েবফ্যাশন প্রাইভেট মাইএসকিউএল উদাহরণটি ব্যবহার করতে সহায়তা করেছে। আমি তোমার Create User এবং গ্রান্ট সমস্ত ধাপ, সেট অনুসৃত mysql.default_port = <private instance port>আমার php.ini মধ্যে, এবং তারপর ব্যবহার করা 127.0.0.1আমার ডিবি হোস্ট-নেমের জন্য সর্বত্র
spex

খুব দরকারী. শুধু একটি মন্তব্য। my.cnf অন্য কনফিগারেশন ফাইল অন্তর্ভুক্ত থাকতে পারে যাতে প্রাসঙ্গিক লাইন অন্য কোথাও হতে পারে। My.cnf- এ শুরু করে একটি লাইন অনুসন্ধান করুন!
tru7

My.cnf ফাইলটি কোথায়?
ভ্লাদিমির দেশপোটোভিচ


4
কেন লোকালহোস্ট এবং%?
রাত্রি

21

নির্দেশাবলী অনুসরণ করুন (উইন্ডোতে 1 থেকে 3 পদক্ষেপের প্রয়োজন নেই):

  1. সম্পাদনা করতে mysql কনফিগারেশন সন্ধান করুন:

    /etc/mysql/my.cnf (MySQL 5.5)

    /etc/mysql/conf.d/mysql.cnf (মাইএসকিএল 5.6+)

  2. এই bind-address=127.0.0.1কনফিগ ফাইল পরিবর্তন bind-address=0.0.0.0(আপনি আপনার ইন্টারফেস আইপিএস এক বেঁধে ঠিকানা সেট না করা বা আমার 0.0.0.0 ব্যবহার করতে পারেন)

  3. কনসোলে চালিত মাইএসকিএল পরিষেবাটি পুনঃসূচনা করুন: service restart mysql

  4. রিমোট সংযোগের জন্য নিরাপদ পাসওয়ার্ড সহ একটি ব্যবহারকারী তৈরি করুন। মাইএসকিএলে নিম্নলিখিত রান কমান্ডটি করতে (যদি আপনি লিনাক্স ব্যবহারকারী হন তবে মাইএসকিএল কনসোল রানটিতে পৌঁছাতে mysqlএবং যদি আপনি রুট রানের জন্য পাসওয়ার্ড সেট করেন mysql -p):

    GRANT ALL PRIVILEGES 
     ON *.* TO 'remote'@'%' 
     IDENTIFIED BY 'safe_password' 
     WITH GRANT OPTION;`

দূরবর্তী সংযোগের ক্ষমতা সহ এখন আপনার নাম userএবং পাসওয়ার্ড সহ একটি ব্যবহারকারী থাকা উচিত safe_password


2
বাইন্ড-ঠিকানা = 0.0.0.0 পরিবর্তন করুন ... যা আমার পক্ষে কাজ করেছিল worked এবং সুযোগ
zwitterion

12

ডিবি ব্যবহারকারী কিসের জন্য? এই উদাহরণ তাকান

mysql> create database databasename;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on databasename.* to cmsuser@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

সুতরাং আপনার কাছে প্রশ্ন জিজ্ঞাসা করার জন্য "%" অপারেটর মানে আপনার নেটওয়ার্কের সমস্ত কম্পিউটার।

অ্যাপ্সা শোয়ের মতো আমিও নিশ্চিত যে আপনাকে কোনও ব্যবহারকারী তৈরি করতে বা আপডেট করতে হবে। আপনার সমস্ত mysql ব্যবহারকারীদের সন্ধান করুন:

SELECT user,password,host FROM user;

আপনার ব্যবহারকারীর সেট আপ হওয়ার সাথে সাথেই আপনি এটির সাথে সংযোগ করতে সক্ষম হবেন:

mysql -h localhost -u gmeier -p

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


সাধারণত, সমস্ত ডিবি জন্য। আমি শুধু সংযোগ করতে চাই, ডিবি নির্বাচন করতে চাই না। codemysql_connect ('লোকালহোস্ট: 3306', 'ইউজার', 'পাসওয়ার্ড'); code
ব্যবহারকারী 2333586

উইন্ডোজ, লিনাক্স আপনি কী ওএসে আছেন ??
অ্যাপেস

জানালা। wamp সার্ভার
ব্যবহারকারী 2333586

আপনাকে নিশ্চিত করতে হবে যে আপনার আইপি ঠিকানাটি 3306 পোর্টে আবদ্ধ windows আপনি যদি 127.0.0.1:3306 দেখতে পান তবে আপনি লোকালহোস্ট
অপেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.