একক সার্ভারে একাধিক মাইএসকিউএল ইনস্ট্যান্স ইনস্টল করার 'ডেবিয়ান উপায়' কী?


9

আপনি কি একক সার্ভারে একাধিক মাইএসকিউএল দৃষ্টান্ত স্থাপনের কোনও 'ডেবিয়ান উপায়' জানেন? সার্ভারটি একাধিক দূরবর্তী ডাটাবেস থেকে প্রতিলিপিযুক্ত ডেটা গ্রহণ করবে।

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

তাহলে একক দেবিয়ান সার্ভারে একাধিক মাইএসকিউএল ইনস্ট্যান্স চালানোর 'সেরা অনুশীলন' কী?


আজকাল ডকার এই জাতীয় ক্ষেত্রে ব্যবহার করা যেতে পারে।
ALex_hha

উত্তর:


12

আমি বিশ্বাস করি এটি mysqld_multiআপনার মাই সিএনএফ সঠিকভাবে চালানো এবং সেটআপ করার মতোই সহজ । mysqld_multiমাইএসকিএল বিতরণের একটি অংশ - প্যাকেজড ফ্রিল নয়।

নেই একটি প্যাচ করতে /usr/share/mysql/mysqld_multi.serverব্যবহারের জন্য উপযুক্ত /etc/init.dএবং অন্য প্যাচ করতে mysqld_multiব্যবহারের ফাইল /etc/mysql/conf.d

আপনি mysql_install_dbকমান্ডটি দিয়ে নতুন উদাহরণগুলির জন্য মাইএসকিউএল ডেটা ডিরেক্টরিগুলি সূচনা করতে পারেন :

mysql_install_db --datadir=/var/lib/mysql2

সদ্য নির্মিত উদাহরণের মূল পাসওয়ার্ড পরিবর্তন করতে ভুলবেন না:

mysqladmin --port 3307 --user=root password 'new-password'

ধন্যবাদ; আপনি কি এটি ব্যবহার করে ব্যবহার করেন? কোনও হরর গল্প / ইঙ্গিত?
পিকিউডি

1
আমার ভয়াবহ গল্পটি 2 দিনের দীর্ঘ ডেটা পুনরুদ্ধারের কারণ ডেবিয়ানের মাইএসকিএল থ্রি স্ক্রিপ্টটি নিখুঁতভাবে মাইএসকিএল বন্ধ করে দেয়নি কারণ শাটডাউনটি খুব বেশি সময় নিয়েছিল। তারপর আমি ডেবিয়ান mysql প্যাকেজের, শুধুমাত্র Percona এর বাইনারি বন্টন এবং এটি initscript ব্যবহার করবেন না যেহেতু
নেই Gábor Vincze

@ গ্যাবরভিঙ্কজে - এটি কি মাইএসকিএলডি_মલ્ટি সেটআপ বা 'নিয়মিত' একক-মাইএসকিএল-ইনস্ট্যান্স ইনস্টলসে ছিল?
pQd

এটি একটি নিয়মিত ইনস্টলেশন ছিল। একটি 5.1
গ্যাবোর ভিনজিজ

1
আমি অনুশীলনে mysqld_m মাল্টি ব্যবহার করি। সবচেয়ে শক্ত অংশটি হল যে আপনি /etc/init.d/mysqld পুনরায় আরম্ভের বিপরীতে ইনস্ট্যান্সগুলি বন্ধ করতে / বন্ধ করতে mysqld_mલ્ટi / mysqladmin ব্যবহার করতে হবে - প্রাক-ক্যানড স্ক্রিপ্টগুলির এত ভয়ঙ্কর কিছু নেই যা এটি সহজ করে তোলে। আপনি এটি মাস্টার হয়ে গেলে, এটি পুরানো টুপি হয়ে যায় এবং বলার জন্য পুনরুদ্ধার, বিলম্বিত প্রতিরূপ - যাই হোক না কেন উদাহরণ সন্ধান করার জন্য এটি খুব সুবিধাজনক way
দ্বিগুণ

3

ডেবিয়ান 8 এ, আপনি সিস্টেমড পদ্ধতি ব্যবহার করতে পারেন: আর প্রয়োজন নেই mysqld_multi

দ্রষ্টব্য: আমি মারিয়াডিবি সংস্করণ ব্যবহার করি! নিশ্চিত না এটি 'ক্লাসিক' মাইএসকিউএল প্যাকেজটির সাথে কাজ করে কিনা।

থেকে /lib/systemd/system/mariadb@.service:

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

কনফিগার ফাইল /etc/mysql/conf.d/ আমার {দৃষ্টান্ত} .cnf তৈরি করুন

systemctl হিসাবে শুরু mariadb@{instancename}.server

সুতরাং, একটি ফাইল তৈরি করুন /etc/mysql/conf.d/myserver2.cnfএবং এতে নতুন পিড / সকেট / ডাটাডির ফাইল এবং নেটওয়ার্ক পোর্ট নির্দিষ্ট করুন:

[mysqld]
user        = mysql
pid-file    = /var/run/mysqld/mysqld-server2.pid
socket      = /var/run/mysqld/mysqld-server2.sock
port        = 3307
basedir     = /usr
datadir     = /var/lib/mysql-server2
tmpdir      = /tmp

সম্পাদনা করুন: সাবধান থাকুন যে প্রথম মাইএসকিউএল দৃষ্টান্তটি !includedir /etc/mysql/conf.d/*নীচের অংশে এই কনফিগার ফাইলটি না পড়ে /etc/mysql/my.cnf। যদি ক্ষেত্রে দেখা যায়, প্রতিস্থাপন !includedirএকটি সঙ্গে !includeপ্রতিটি কনফিগ ফাইল অন্য চেয়ে myserver2.cnf সংখ্যা:

#!includedir /etc/mysql/conf.d/*
!include /etc/mysql/conf.d/conf1.cnf
!include /etc/mysql/conf.d/confX.cnf

মাইএসকিউএল কর্মকর্তা ডক ইঙ্গিত আপনি যেটির নাম দিতে আছে [mysqld]যেমন [mysqld@server2]( https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html#systemd-multiple-mysql-instances ) কিন্তু এই MariaDB সাথে কাজ করে না । সুতরাং শুধু যাক [mysqld]

নতুন ডেমনটি শুরু করার আগে, ডেটাডির এবং প্রয়োজনীয় ফাইলগুলি তৈরি করতে ভুলবেন না:

mkdir /var/lib/mysql-server2
chown mysql:mysql /var/lib/mysql-server2
mysql_install_db --datadir=/var/lib/mysql-server2

সিস্টেমড ডেমন কনফিগারেশন পুনরায় লোড করুন:

systemctl daemon-reload

এবং আপনি যদি বুটের সময় এই ডেমনটি শুরু করতে চান:

systemctl enable mariadb@server2

এটি শুরু করতে:

service mariadb@server2 start

মূল (অ-উদাহরণস্বরূপ) মাইএসকিএল পড়ে /etc/my.cnf, সে কারণেই।
মাইকেল হ্যাম্পটন

আমি আমার উত্তর সম্পাদনা করেছি: বাস্তবে, এটি প্রদর্শিত হয় যে প্রথম উদাহরণটি দিয়ে সার্ভার 2 সিএনএফ ফাইলটি পড়ে !includedir /etc/mysql/conf.d/*। আরও সুরক্ষার জন্য, আমি প্রতিটি conf.dফাইল ম্যানুয়ালি অন্তর্ভুক্ত করেছি
সবচেয়ে খারাপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.