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


93

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

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

আপনি কি আপনার কনফিগারেশনের আরও বেশি কিছু ভাগ করতে পারেন, বিশেষত নেটওয়ার্কিং বিকল্পগুলি (কতগুলি, টাইপ [ব্রিজড, ন্যাট, ...]) পাশাপাশি আপনি যে বন্দরের ফরওয়ার্ড করেছেন তার একটি স্ক্রিনশট? এটি আপনার ভিএম-তে ফায়ারওয়াল সম্পর্কিত সমস্যাও হতে পারে।
গইউইক্স

উত্তর:


126

নিশ্চিত করুন যে মাইএসকিউএলটি ০.০.০.০-এ বাঁধেছে এবং 127.0.0.1 নয় বা এটি মেশিনের বাইরে থেকে অ্যাক্সেসযোগ্য হবে না

আপনি এটি আপনার মাই কনফ ফাইলটি সম্পাদনা করে এবং bind-addressআইটেমটি সন্ধান করে এটি নিশ্চিত করতে পারেন - আপনি এটির মতো দেখতে চান bind-address = 0.0.0.0। তারপরে এটি সংরক্ষণ করুন এবং মাইএসকিএল পুনরায় চালু করুন:

sudo service mysql restart

আপনি যদি কোনও প্রোডাকশন সার্ভারে এটি করছেন, আপনি এখানে সুরক্ষিত সুরক্ষা সম্পর্কিত প্রভাবগুলি সম্পর্কে সচেতন হতে চান: /server/257513/how-bad-is-setting-mysqls-bind-address-to -0-0-0-01


এটি অবশ্যই আমার মাইএসকিএল 5.5 ইনস্টলের ক্ষেত্রে ছিল। Mysql.conf- এর মন্তব্যগুলি থেকে, আমি মনে করি এটি সংস্করণ অনুসারে পরিবর্তিত হয় - তারা অন্য উত্তরে মন্তব্য করা কনফিগারেশনটি ব্যবহার করতে ব্যবহার করে।
moorss

7
আপনি নিম্নলিখিত কমান্ডের সাহায্যে বুটস্ট্র্যাপ ফাইলে এই পদক্ষেপটি স্বয়ংক্রিয় করতে পারেন ( sed -i 's/symbolic-links=0/symbolic-links=0\nbind-address=0.0.0.0/g' /etc/my.cnf
সেন্টোজে

বা কেবল bind-addressলাইনটি মন্তব্য করুন
xiaoyifang

9
আমি এই পেতে Host '10.0.2.2' is not allowed to connect to this MySQL server। তবে সার্ভারফ্রন্ট
486716/147813

4
@ সিএমসিডিগ্রাগনকাই সার্ভারফল্ট লিঙ্কটি ছাড়াও (মন্তব্য করার জন্য আমার এখানে খ্যাতি নেই), এই কমান্ডটি কোনও উত্তর স্ক্রিপ্টের মতো কিছুতে ব্যবহার করা যেতে পারে রুট ব্যবহারকারীদের অনুমতি দেওয়ার জন্য স্বয়ংক্রিয়ভাবে ব্যবহার করতে:mysql -e "create user 'root'@'10.0.2.2' identified by 'vagrant'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
কায়াকিনকডার

49

ssh vagrant@127.0.0.1 -p 2222(পাসওয়ার্ড অসম্পূর্ণ) দিয়ে আপনার বাক্সে লগ ইন করুন

তারপরে: sudo nano /etc/mysql/my.cnfএবং # দিয়ে নিম্নলিখিত লাইনগুলিতে মন্তব্য করুন

#skip-external-locking 
#bind-address

এটি সংরক্ষণ করুন এবং প্রস্থান করুন

তারপরে: sudo service mysql restart

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


10
আমি "#" এর পরিবর্তে "#" দিয়ে মন্তব্য করেছি;
জে

4
আমাকে ঠিকানাটি আবদ্ধ করে চালাতে হবে: GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
একটি এনগুইন

আপনাকে ধন্যবাদ, এটি আমাকে যুগ যুগ ধরে কষ্ট দিচ্ছিল। # skip-external-lockingসমাধান!
জ্যাক

18

আমি সম্প্রতি এই বিষয়টি জুড়ে এসেছি। আমি একটি কনফিগার উত্পন্ন করতে PuPHPet ব্যবহার করেছি।

এসএসএইচের মাধ্যমে মাইএসকিউএলে কানেক্ট করতে, "ভ্যাগ্র্যান্ট" পাসওয়ার্ডটি আমার পক্ষে কাজ করে না, পরিবর্তে আমাকে এসএসএইচ কী ফাইলের মাধ্যমে প্রমাণীকরণ করতে হয়েছিল।

মাইএসকিউএল ওয়ার্কবেঞ্চের সাথে সংযুক্ত হতে

সংযোগ পদ্ধতি

এসএসএইচ ওভার স্ট্যান্ডার্ড টিসিপি / আইপি

এসএসএইচ

Hostname: 127.0.0.1:2222 (forwarded SSH port)
Username: vagrant
Password: (do not use)
SSH Key File: C:\vagrantpath\puphpet\files\dot\ssh\insecure_private_key
              (Locate your insercure_private_key)

মাইএসকিউএল

Server Port: 3306
username: (root, or username)
password: (password)

সংযোগ পরীক্ষা করুন।


Phpstorm এর সাথে ডাটাবেসের সাথে সংযোগ করার জন্য আমি মূলত একই জিনিসটি করেছি তবে পুপিএইচপিপেটের পরিবর্তে আমি প্রোটোবক্স ব্যবহার করেছি।
নাল

17

যে কেউ মাইএসকিএল ওয়ার্কবেঞ্চ বা সিক্যুয়াল প্রো ব্যবহার করে এটি করার চেষ্টা করছে তাদের জন্য এই ইনপুটগুলি:

Mysql Host: 192.168.56.101 (or ip that you choose for it)
username: root (or mysql username u created)
password: **** (your mysql password)
database: optional
port: optional (unless you chose another port, defaults to 3306)

ssh host: 192.168.56.101 (or ip that you choose for this vm, like above)
ssh user: vagrant (vagrants default username)
ssh password: vagrant (vagrants default password)
ssh port: optional (unless you chose another)

উত্স: https://coderwall.com/p/yzwqvg


4
এটি খুব সহায়ক ছিল! ভার্চুয়াল বক্স এবং ssh এজেন্ট ফরোয়ার্ডিং ব্যবহার করে আমাকে বিন্যাস-ঠিকানা সামঞ্জস্য করতে হবে না
kasakka

4
আপনার হোস্ট মেশিনের পরিচিত_হোস্টগুলি ফাইল থেকে যে কোনও হোস্ট (আইপি ঠিকানা) থেকে কোনও সরকারী কী সরিয়েছেন তা নিশ্চিত করুন। আপনি যদি একই আইপি ঠিকানার সাথে অন্য ভ্যাগ্রান্ট ভিএম ব্যবহার করে থাকেন তবে এটি ঘটবে
জন হাডসন

আপনি vagrant ssh-configকমান্ড থেকে এসএসএইচ কনফিগারেশন মানগুলিও পেতে পারেন ।
টেলর

13

ঠিক আছে, যেহেতু প্রদত্ত জবাব দুটিই আমাকে সহায়তা করেনি, তাই আমাকে আরও সন্ধান করতে হয়েছিল এবং এই নিবন্ধে সমাধান খুঁজে পেয়েছি ।

এবং সংক্ষেপে উত্তরটি নিম্নরূপ:

মাইএসকিউএল ওয়ার্কবেঞ্চ ব্যবহার করে মাইএসকিউএলে সংযুক্ত হচ্ছে

Connection Method: Standard TCP/IP over SSH
SSH Hostname: <Local VM IP Address (set in PuPHPet)>
SSH Username: vagrant (the default username)
SSH Password: vagrant (the default password)
MySQL Hostname: 127.0.0.1
MySQL Server Port: 3306
Username: root
Password: <MySQL Root Password (set in PuPHPet)>

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


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

আমি ভাস্কর্য বাক্সের জন্য ব্যক্তিগত কী ফাইলের জন্য এসএসএইচ কী ফাইলের পথটি নির্দিষ্ট করতে হয়েছিল: $HOME/project/.vagrant/machines/default/virtualbox/private_keyউবুন্টুতে 14.04
ফ্রান্সিসকো কুইন্টেরো

আপনি vagrant ssh-configকমান্ড থেকে এসএসএইচ কনফিগারেশন মানগুলিও পেতে পারেন ।
টেলর

2

বাক্সে লগ ইন করার পরে যে পদক্ষেপগুলি আমার পক্ষে কাজ করেছিল তা এখানে:

মাইএসকিউএল কনফিগারেশন ফাইলটি সনাক্ত করুন:

$ mysql --help | grep -A 1 "Default options"

Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

উবুন্টু 16 এ, পথটি সাধারণত /etc/mysql/mysql.conf.d/mysqld.cnf

বাইন্ড-অ্যাড্রেসের জন্য কনফিগারেশন ফাইলটি পরিবর্তন করুন:

যদি এটি বিদ্যমান থাকে তবে নিম্নলিখিত মানটি পরিবর্তন করুন। যদি এটি বিদ্যমান না থাকে তবে এটিকে [মাইএসকিএলডি] বিভাগের যে কোনও জায়গায় যুক্ত করুন।

bind-address = 0.0.0.0

আপনার পরিবর্তনগুলি কনফিগারেশন ফাইলে সংরক্ষণ করুন এবং মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন।

service mysql restart

ডাটাবেস ব্যবহারকারীদের অ্যাক্সেস তৈরি / তৈরি করুন:

মূল ব্যবহারকারী হিসাবে মাইএসকিউএল ডাটাবেসে সংযুক্ত হন এবং নিম্নলিখিত এসকিউএল আদেশগুলি চালান:

mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';

mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%';

1

এটি আমার পক্ষে কাজ করেছে: ভ্যাগ্রান্টে মাইএসকিউএল থেকে সংযুক্ত করুন

username: vagrant password: vagrant

sudo apt-get update sudo apt-get install build-essential zlib1g-dev
git-core sqlite3 libsqlite3-dev sudo aptitude install mysql-server
mysql-client


sudo nano /etc/mysql/my.cnf change: bind-address            = 0.0.0.0


mysql -u root -p

use mysql GRANT ALL ON *.* to root@'33.33.33.1' IDENTIFIED BY
'jarvis'; FLUSH PRIVILEGES; exit


sudo /etc/init.d/mysql restart




# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant::Config.run do |config|

  config.vm.box = "lucid32"

  config.vm.box_url = "http://files.vagrantup.com/lucid32.box"

  #config.vm.boot_mode = :gui

  # Assign this VM to a host-only network IP, allowing you to access
it   # via the IP. Host-only networks can talk to the host machine as
well as   # any other machines on the same network, but cannot be
accessed (through this   # network interface) by any external
networks.   # config.vm.network :hostonly, "192.168.33.10"

  # Assign this VM to a bridged network, allowing you to connect
directly to a   # network using the host's network device. This makes
the VM appear as another   # physical device on your network.   #
config.vm.network :bridged

  # Forward a port from the guest to the host, which allows for
outside   # computers to access the VM, whereas host only networking
does not.   # config.vm.forward_port 80, 8080

  config.vm.forward_port 3306, 3306

  config.vm.network :hostonly, "33.33.33.10"


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