এটি হল mysqldiff কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
mysqldiff - ডেটাবেস অবজেক্টের মধ্যে পার্থক্য চিহ্নিত করুন
সাইনোপিসিস
mysqldiff [অপশন] {db1[:db1] | {db1.obj1[:db2.obj2]} ...
বর্ণনাঃ
এই ইউটিলিটি বস্তুর সংজ্ঞা পড়ে এবং একটি ভিন্ন-মত পদ্ধতি ব্যবহার করে তাদের তুলনা করে
তারা একই কিনা তা নির্ধারণ করতে। ইউটিলিটি বস্তুর পার্থক্য প্রদর্শন করে
যে একই না.
তুলনা করতে দুটি ডাটাবেসের নাম দিতে স্বরলিপি db1:db2 ব্যবহার করুন, অথবা বিকল্পভাবে শুধুমাত্র db1-এর সাথে
একই নামের দুটি ডাটাবেস তুলনা করুন। পরবর্তী ক্ষেত্রে একটি সুবিধার স্বরলিপি জন্য
বিভিন্ন সার্ভারে একই নামের ডাটাবেসের তুলনা করা।
তুলনা একটি একক সার্ভারে বিভিন্ন নামের দুটি ডাটাবেসের বিরুদ্ধে চালানো হতে পারে
শুধুমাত্র নির্দিষ্ট --সার্ভার 1 বিকল্প ব্যবহারকারী অন্য সার্ভারের সাথে সংযোগ করতে পারেন
উল্লেখ --সার্ভার 2 বিকল্প এই ক্ষেত্রে, db1 সার্ভার 1 থেকে এবং db2 থেকে নেওয়া হয়
সার্ভার2
যখন একটি ডাটাবেস জোড়া নির্দিষ্ট করা হয়, তখন একটি ডাটাবেসের সমস্ত বস্তুর সাথে তুলনা করা হয়
অন্যান্য অনুরূপ বস্তু. কোন বস্তু উভয় ডাটাবেস উত্পাদন প্রদর্শিত না
একটি ভুল.
বস্তুর একটি নির্দিষ্ট জোড়া তুলনা করতে, প্রতিটি ডাটাবেসের নামের সাথে একটি বস্তুর নাম যোগ করুন db.obj
বিন্যাস উদাহরণস্বরূপ, দুটি নামযুক্ত বস্তুর তুলনা করতে db1.obj1:db2.obj2 ব্যবহার করুন বা db1.obj1 এর সাথে
একই নামের সাথে ডেটাবেসে একই নামের একটি বস্তুর তুলনা করুন। এটা বৈধ নয়
একটি বস্তুর নামের সাথে একটি ডাটাবেসের নাম মিশ্রিত করুন। উদাহরণস্বরূপ, db1.obj1:db2 এবং db1:db2.obj2 হল
অবৈধ।
ভিন্ন দুটি ডাটাবেসের তুলনা করার জন্য একটি একক সার্ভারের বিরুদ্ধে তুলনা চালানো হতে পারে
শুধুমাত্র নির্দিষ্ট করে একই সার্ভারে নাম --সার্ভার 1 বিকল্প বিকল্পভাবে, আপনি পারেন
এছাড়াও নির্দিষ্ট করে অন্য সার্ভারের সাথে সংযোগ করুন --সার্ভার 2 বিকল্প এই ক্ষেত্রে, প্রথম
তুলনা করার বস্তুটি সার্ভার 1 থেকে এবং দ্বিতীয়টি সার্ভার 2 থেকে নেওয়া হয়েছে।
ডিফল্টরূপে, ইউটিলিটি একটি পার্থক্য প্রতিবেদন হিসাবে বস্তুর পার্থক্য তৈরি করে। যাইহোক, আপনি
রূপান্তর করার জন্য SQL বিবৃতি ধারণকারী একটি রূপান্তর প্রতিবেদন তৈরি করতে পারে
পরিবর্তে সামঞ্জস্যের জন্য বস্তু। এর জন্য 'sql' মান ব্যবহার করুন -- ভিন্ন ধরনের একটি উত্পাদন বিকল্প
অবজেক্টের সংজ্ঞা মেনে চলার জন্য উপযুক্ত ALTER কমান্ড ধারণ করে এমন তালিকা
বস্তু জোড়া নির্দিষ্ট. একটি রূপান্তর গঠিত না হলে, ইউটিলিটি রিপোর্ট
একটি সতর্কতা বিবৃতি সহ বস্তুর পার্থক্য। নোটে গুরুত্বপূর্ণ সীমাবদ্ধতা দেখুন
অধ্যায়.
ডিফ-স্টাইল আউটপুট কীভাবে প্রদর্শন করবেন তা নির্দিষ্ট করতে, এর সাথে নিম্নলিখিত মানগুলির মধ্যে একটি ব্যবহার করুন
-- ভিন্ন ধরনের বিকল্প:
· সমন্বিত (ডিফল্ট)
ইউনিফাইড ফরম্যাট আউটপুট প্রদর্শন করুন।
· প্রসঙ্গ
প্রসঙ্গ বিন্যাস আউটপুট প্রদর্শন করুন।
· ভিন্ন
ডিফার-স্টাইল ফরম্যাট আউটপুট প্রদর্শন করুন।
· SQL
এসকিউএল ট্রান্সফরমেশন স্টেটমেন্ট আউটপুট প্রদর্শন করুন।
সার্জারির --পরিবর্তন-এর জন্য বিকল্প পার্থক্যের দিক নিয়ন্ত্রণ করে (নির্দিষ্ট করে
বস্তুটি রূপান্তরিত হতে হবে) হয় পার্থক্য প্রতিবেদনে (ডিফল্ট) বা রূপান্তর
রিপোর্ট (এর সাথে মনোনীত --difftype=sql বিকল্প)। নিম্নলিখিত কমান্ড বিবেচনা করুন:
mysqldiff --server1=root@host1 --server2=root@host2 --difftype=sql
db1.table1:dbx.table3
বামতম ডাটাবেস (db1) দ্বারা মনোনীত সার্ভারে বিদ্যমান --সার্ভার 1 পছন্দ
(হোস্ট1)। ডানদিকের ডাটাবেস (dbx) দ্বারা মনোনীত সার্ভারে বিদ্যমান --সার্ভার 2
বিকল্প (হোস্ট2)।
· --পরিবর্তন-এর জন্য = সার্ভার1: আউটপুট তৈরি করুন যা দেখায় কিভাবে এর সংজ্ঞা তৈরি করতে হয়
সার্ভার 1-এ থাকা বস্তুগুলি সার্ভার 2-এ সংশ্লিষ্ট বস্তুর সংজ্ঞাগুলির মতো।
· --পরিবর্তন-এর জন্য = সার্ভার2: আউটপুট তৈরি করুন যা দেখায় কিভাবে এর সংজ্ঞা তৈরি করতে হয়
সার্ভার 2-এ থাকা বস্তুগুলি সার্ভার 1-এ সংশ্লিষ্ট বস্তুর সংজ্ঞাগুলির মতো।
ডিফল্ট দিক হল সার্ভার 1।
জন্য SQL পার্থক্য বিন্যাস, আপনি উল্লেখ করে বিপরীত রূপান্তর দেখতে পারেন
--দেখানো-বিপরীত বিকল্প।
ইউটিলিটি অবজেক্টের অনুপস্থিত হওয়ার প্রথম সংঘটনে বা যখন একটি বস্তু না হয় তখন বন্ধ হয়ে যায়
ম্যাচ. এই আচরণ ওভাররাইড করতে, নির্দিষ্ট করুন -- বল ইউটিলিটি ঘটাতে বিকল্প
আর্গুমেন্ট হিসাবে তালিকাভুক্ত সমস্ত বস্তুর তুলনা করার চেষ্টা করুন।
বিকল্প
mysqldiff নিম্নলিখিত কমান্ড-লাইন বিকল্পগুলি গ্রহণ করে:
· -- সাহায্য
একটি সহায়তা বার্তা প্রদর্শন করে প্রস্থান প্রদর্শন।
· --পরিবর্তন-এর জন্য=
অন্য সার্ভারের সাথে মেলে রূপান্তর দেখাতে সার্ভারটি নির্দিষ্ট করুন। উদাহরণস্বরূপ, থেকে
সার্ভার 1-এর সাথে মেলে অবজেক্টের সংজ্ঞা রূপান্তরের জন্য রূপান্তর দেখুন
সার্ভার 2-এ সংশ্লিষ্ট সংজ্ঞা ব্যবহার করুন --পরিবর্তন-এর জন্য = সার্ভার1. অনুমোদিত মান হয়
server1 এবং server2। ডিফল্ট হয় server1.
· --ডিফটাইপ= , -d
পার্থক্য প্রদর্শন বিন্যাস উল্লেখ করুন. অনুমোদিত বিন্যাস মান হয় সমন্বিত, প্রসঙ্গ,
ভিন্ন, এবং SQL। ডিফল্ট হয় সমন্বিত.
· -- বল
পাওয়া প্রথম পার্থক্য এ থামবেন না. সব খুঁজে পেতে সব বস্তু প্রক্রিয়া
পার্থক্য
· - শান্ত, -q
কিছু ছাপবেন না। সাফল্য বা ব্যর্থতার শুধুমাত্র একটি প্রস্থান কোড ফেরত দিন।
· --সার্ভার1=
বিন্যাসে প্রথম সার্ভারের জন্য সংযোগ তথ্য:
<ব্যবহারকারী>[:passwd কোন>>]@নিমন্ত্রণকর্তা>[:বন্দর>> [:সকেট>] বালগইন-পথ>[:বন্দর>> [:সকেট>]।
· --সার্ভার2=
বিন্যাসে দ্বিতীয় সার্ভারের জন্য সংযোগ তথ্য:
<ব্যবহারকারী>[:passwd কোন>>]@নিমন্ত্রণকর্তা>[:বন্দর>> [:সকেট>] বালগইন-পথ>[:বন্দর>> [:সকেট>]।
· -- প্রদর্শন-বিপরীত
অবজেক্টকে কনফার্ম করার জন্য এসকিউএল স্টেটমেন্ট সমন্বিত একটি রূপান্তর প্রতিবেদন তৈরি করুন
বিপরীতে নির্দিষ্ট সংজ্ঞা. উদাহরণস্বরূপ, যদি --পরিবর্তন-এর জন্য সার্ভার 1 এ সেট করা হয়েছে,
সার্ভার2-এর জন্য রূপান্তরও তৈরি করে। দ্রষ্টব্য: বিপরীত পরিবর্তন টীকা করা হয়
এবং মন্তব্য হিসাবে চিহ্নিত।
· --ভারবোস, -ভি
কত তথ্য প্রদর্শন করতে হবে তা উল্লেখ করুন। বাড়ানোর জন্য এই বিকল্পটি একাধিকবার ব্যবহার করুন
তথ্যের পরিমাণ। উদাহরণ স্বরূপ, -v = শব্দচয়ন, -ভিভি = আরো শব্দসমৃদ্ধ, -ভিভিভি =
ডিবাগ
· --সংস্করণ
সংস্করণ তথ্য প্রদর্শন করুন এবং প্রস্থান করুন।
· --প্রস্থ=
পরীক্ষার রিপোর্টের প্রদর্শনের প্রস্থ পরিবর্তন করুন। ডিফল্ট 75টি অক্ষর।
নোট
একটি অ্যাকাউন্টের জন্য আপনাকে অবশ্যই সংযোগ পরামিতি (ব্যবহারকারী, হোস্ট, পাসওয়ার্ড এবং আরও অনেক কিছু) প্রদান করতে হবে
যে সমস্ত বস্তুর তুলনা করার জন্য অ্যাক্সেস করার উপযুক্ত সুবিধা রয়েছে।
এসকিউএল রূপান্তর বৈশিষ্ট্যের এই পরিচিত সীমাবদ্ধতা রয়েছে:
· পার্টিশন পার্থক্য সহ টেবিলের সম্মুখীন হলে, ইউটিলিটি তৈরি করে
পরিবর্তন সারণী অন্যান্য সমস্ত পরিবর্তনের জন্য বিবৃতি কিন্তু একটি সতর্কতা প্রিন্ট করে এবং বাদ দেয়
বিভাজন পার্থক্য।
· যদি রূপান্তরটি উত্স টেবিলে টেবিলের বিকল্পগুলি সনাক্ত করে (এর সাথে নির্দিষ্ট করা হয়েছে
--পরিবর্তন-এর জন্য বিকল্প) যা পরিবর্তিত হয় না বা লক্ষ্য সারণীতে বিদ্যমান নেই,
ইউটিলিটি তৈরি করে পরিবর্তন সারণী অন্যান্য সমস্ত পরিবর্তনের জন্য বিবৃতি কিন্তু একটি সতর্কতা প্রিন্ট করে
এবং টেবিল বিকল্প পার্থক্য বাদ দেয়।
· ইভেন্টগুলির জন্য পুনঃনামকরণ সমর্থিত নয়। এই কারণ mysqldiff দ্বারা বস্তুর তুলনা করে
নাম এই ক্ষেত্রে, পার্থক্যের দিকের উপর নির্ভর করে, ঘটনাটিকে চিহ্নিত করা হয়
যোগ করা প্রয়োজন বা ক ড্রপ অনুষ্ঠান বিবৃতি তৈরি হয়।
· ইভেন্টের জন্য ডিফাইনার ক্লজের পরিবর্তন সমর্থিত নয়।
· MySQL ক্লাস্টারের জন্য নির্দিষ্ট SQL এক্সটেনশন সমর্থিত নয়।
জন্য -- ভিন্ন ধরনের বিকল্প, অনুমোদিত মানগুলি কেস সংবেদনশীল নয়। এছাড়াও,
মান একটি বৈধ মানের যেকোন দ্ব্যর্থহীন উপসর্গ হিসাবে নির্দিষ্ট করা যেতে পারে। উদাহরণ স্বরূপ,
--difftype=d ভিন্ন প্রকার নির্দিষ্ট করে। একটি উপসর্গ একাধিক মেলে যদি একটি ত্রুটি ঘটে
বৈধ মান।
MySQL ক্লায়েন্ট টুলের পথটি PATH এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে অন্তর্ভুক্ত করা উচিত
লগইন-পাথ সহ প্রমাণীকরণ প্রক্রিয়া ব্যবহার করার জন্য। এই ইউটিলিটি অনুমতি দেবে
my_print_defaults টুলগুলি ব্যবহার করুন যা থেকে লগইন-পাথের মানগুলি পড়ার জন্য প্রয়োজন
লগইন কনফিগারেশন ফাইল (.mylogin.cnf)।
যদি কোনো ডাটাবেস অবজেক্ট আইডেন্টিফায়ারে আর্গুমেন্ট হিসেবে নির্দিষ্ট করা থাকে বিশেষ অক্ষর বা
একটি সংরক্ষিত শব্দ, তাহলে এটি অবশ্যই ব্যাকটিক্সের সাথে যথাযথভাবে উদ্ধৃত করা উচিত (`) পালাক্রমে,
ব্যাকটিক্স সহ উদ্ধৃত নামগুলির উপর নির্ভর করে একক বা দ্বিগুণ উদ্ধৃতি সহ উদ্ধৃত করা আবশ্যক
অপারেটিং সিস্টেম, অর্থাৎ (") উইন্ডোজে বা (') নন-উইন্ডোজ সিস্টেমে, এর জন্য
একটি একক যুক্তি হিসাবে ব্যাকটিক উদ্ধৃত শনাক্তকারী পড়ার উপযোগিতা। যেমন দেখানোর জন্য
টেবিলের মধ্যে পার্থক্য অদ্ভুত টেবিল 1 ডাটাবেস থেকে weird`db.name এবং টেবিল
অদ্ভুত টেবিল 2 ডাটাবেস থেকে অন্যান্য:weird`db.name, বস্তুর জোড়া ব্যবহার করে নির্দিষ্ট করা আবশ্যক
নিম্নলিখিত সিনট্যাক্স (অ-উইন্ডোজে):
'`weird``db.name`.`weird``table1`:`other:weird``db.name`.`weird``table2`'.
উদাহরণ
স্থানীয় সার্ভারে কর্মচারী এবং emp ডাটাবেস তুলনা করতে, এই কমান্ডটি ব্যবহার করুন:
$ mysqldiff --server1=root@localhost কর্মীরা:emp1
স্থানীয় হোস্টে # সার্ভার 1: ... সংযুক্ত।
সতর্কতা: সার্ভার 1 এ অবজেক্ট: কর্মচারী কিন্তু সার্ভার 2 এ নয়: emp1:
ঘটনা: e1
তুলনা ব্যর্থ হয়েছে. এক বা একাধিক পার্থক্য পাওয়া গেছে।
$ mysqldiff --server1=root@localhost
employees.t1:emp1.t1 employees.t3:emp1.t3
স্থানীয় হোস্টে # সার্ভার 1: ... সংযুক্ত।
# Emp1.t1 এর সাথে staff.t1 তুলনা করা [PASS]
স্থানীয় হোস্টে # সার্ভার 1: ... সংযুক্ত।
# Emp3.t1 এর সাথে staff.t3 তুলনা করা [PASS]
সফলতা। সব বস্তু একই।
$ mysqldiff --server1=root@localhost
staff.salaries: emp1.salaries -- ভিন্ন
স্থানীয় হোস্টে # সার্ভার 1: ... সংযুক্ত।
#কর্মচারীদের বেতনের সাথে emp1.বেতনের তুলনা করা [ফেল]
# বস্তুর সংজ্ঞা একই নয়:
টেবিল তৈরি করুন 'বেতন' (
`emp_no` কোন int(11) শূন্য নয়,
'বেতন' কোন int(11) শূন্য নয়,
`from_date` তারিখ শূন্য নয়,
`to_date` তারিখ শূন্য নয়,
প্রাথমিক কী (`emp_no`,`from_date`),
কী `emp_no` (`emp_no`)
- ) ইঞ্জিন=ইনোডিবি ডিফল্ট অক্ষর=ল্যাটিন1
? ^^^^^
+ ) ইঞ্জিন=MyISAM ডিফল্ট অক্ষর=ল্যাটিন1
? ++ ^^^
তুলনা ব্যর্থ হয়েছে. এক বা একাধিক পার্থক্য পাওয়া গেছে।
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে একটি রূপান্তর প্রতিবেদন তৈরি করতে হয়। নিম্নলিখিত অনুমান
বস্তুর সংজ্ঞা:
হোস্ট 1:
টেবিল তৈরি করুন db1.table1 (num int, misc গৃহস্থালির কাজ(30));
হোস্ট 2:
টেবিল তৈরি করুন dbx.table3 (সংখ্যা int, নোট গৃহস্থালির কাজ(30), বিবিধ গৃহস্থালির কাজ(55));
এসকিউএল স্টেটমেন্টের একটি সেট তৈরি করতে যা db1.table1 এর সংজ্ঞাকে রূপান্তরিত করে
dbx.table3, এই কমান্ডটি ব্যবহার করুন:
$ mysqldiff --server1=root@host1 --server2=root@host2
--changes-for=server1 --difftype=sql
db1.table1:dbx.table3
# সার্ভার 1 host1: ... সংযুক্ত।
# সার্ভার 2 host2: ... সংযুক্ত।
# db1.table1 এর সাথে dbx.table3 তুলনা করা হচ্ছে [ফেল]
# রূপান্তর বিবৃতি:
টেবিল পরিবর্তন করুন db1.table1
কলাম নোট যোগ করুন গৃহস্থালির কাজ(30) পরে একটি,
কলাম বিবিধ বিবিধ পরিবর্তন করুন গৃহস্থালির কাজ(২০১১);
তুলনা ব্যর্থ হয়েছে. এক বা একাধিক পার্থক্য পাওয়া গেছে।
এসকিউএল স্টেটমেন্টের একটি সেট তৈরি করতে যা dbx.table3 এর সংজ্ঞাকে রূপান্তরিত করে
db1.table1, এই কমান্ডটি ব্যবহার করুন:
$ mysqldiff --server1=root@host1 --server2=root@host2
--changes-for=server2 --difftype=sql
db1.table1:dbx.table3
# সার্ভার 1 host1: ... সংযুক্ত।
# সার্ভার 2 host2: ... সংযুক্ত।
# db1.table1 এর সাথে dbx.table3 তুলনা করা হচ্ছে [ফেল]
# রূপান্তর বিবৃতি:
টেবিল পরিবর্তন করুন dbx.table3
ড্রপ কলাম নোট,
কলাম বিবিধ বিবিধ পরিবর্তন করুন গৃহস্থালির কাজ(২০১১);
তুলনা ব্যর্থ হয়েছে. এক বা একাধিক পার্থক্য পাওয়া গেছে।
এসকিউএল স্টেটমেন্টের একটি সেট তৈরি করতে যা dbx.table3 এবং এর সংজ্ঞা পরিবর্তন করে
db1.table1 উভয় দিকে, এই কমান্ডটি ব্যবহার করুন:
$ mysqldiff --server1=root@host1 --server2=root@host2
--শো-বিপরীত --difftype=sql
db1.table1:dbx.table3
# সার্ভার 1 host1: ... সংযুক্ত।
# সার্ভার 2 host2: ... সংযুক্ত।
# db1.table1 এর সাথে dbx.table3 তুলনা করা হচ্ছে [ফেল]
# রূপান্তর বিবৃতি:
# --গন্তব্য=সার্ভার1:
টেবিল পরিবর্তন করুন db1.table1
কলাম নোট যোগ করুন গৃহস্থালির কাজ(30) পরে একটি,
কলাম বিবিধ বিবিধ পরিবর্তন করুন গৃহস্থালির কাজ(২০১১);
# --গন্তব্য=সার্ভার2:
# টেবিল পরিবর্তন করুন dbx.table3
# ড্রপ কলাম নোট,
# কলাম বিবিধ বিবিধ পরিবর্তন করুন গৃহস্থালির কাজ(২০১১);
তুলনা ব্যর্থ হয়েছে. এক বা একাধিক পার্থক্য পাওয়া গেছে।
কপিরাইট
onworks.net পরিষেবা ব্যবহার করে অনলাইনে mysqldiff ব্যবহার করুন