মাইএসকিউএল / অ্যামাজন আরডিএস ত্রুটি: "আপনার কাছে সুপার সুবিধা নেই ..."


101

আমি আমার মাইএসকিএল ডাটাবেসটি একটি আমাজন ইসি 2 থেকে আরডিএসে অনুলিপি করার চেষ্টা করছি:

আমি এটি mysqldumpব্যবহার করে আমার রুট ফোল্ডারে সাফল্যের সাথে আমার একটি ডাটাবেস করেছি:

root@ip-xx-xx-xx-xx:~# mysqldump my_database -u my_username -p > my_database.sql

তারপরে আমি এই। এসকিএল ফাইলটি আমার নতুন আরডিএস ডাটাবেসে স্থানান্তর করার চেষ্টা করেছি:

root@ip-xx-xx-xx-xx:~# mysql my_database -u my_username -p -h  
my_new_database.xxxxxxxxx.us-east-1.rds.amazonaws.com < my_database.sql

দুর্ভাগ্যক্রমে, আমি নিম্নলিখিত ত্রুটি বার্তা পেয়েছি:

You do not have the SUPER privilege and binary logging is enabled 
(you *might* want to use  the less safe log_bin_trust_function_creators variable)

আমি GRANT SUPER..বিভিন্ন উপায়ে চেষ্টা করেছি কিন্তু আমি যখন এটি করার চেষ্টা করি তখন আমি ত্রুটিগুলি পাচ্ছি। টাইপিংও mysql > FLUSH privileges;কাজ করে না।

আমি একটি সহজকিউএলএল শিক্ষানবিস এত সহজ প্রশ্নের জন্য দুঃখিত। ভাবনা?


9
আপনি GRANT SUPERআরডিএসে পারবেন না । আরডিএস সুপার সুবিধা পাওয়ার কোনও উপায় সরবরাহ করে না।
ceejayoz

4
এটি ডাম্প তৈরি এবং পুনরুদ্ধার করার জন্য একই মাইএসকিউএল ব্যবহারকারী নাম ব্যবহার করুন (ডাম্পের সংযোগ এবং ডিফাইনার কীওয়ার্ডের জন্য)। লগ_বিন_স্টাস্ট_ফানশন_ক্রিটর পরিবর্তন করা পছন্দসই সমাধান নয়। সবচেয়ে
খারাপটি হ'ল

আমার ক্ষেত্রে আমার sqlফাইলে CREATE FUNCTIONস্টেটমেন্ট রয়েছে যার একটি সুবিধাযুক্ত ব্যবহারকারীর প্রয়োজন। এটি দেখুন
হিসাবরক্ষক

উত্তর:


63

Http://getasysadmin.com/2011/06/amazon-rds-super-privileges/ প্রতি , আপনার ত্রুটি ছাড়াই আপনার ডাম্প ফাইলটি লোড করতে AWS কনসোলেlog_bin_trust_function_creators 1 সেট করা দরকার ।

আপনি যদি এই ত্রুটিগুলি উপেক্ষা করতে এবং বাকী ডাম্প ফাইলটি লোড করতে চান তবে আপনি -fবিকল্পটি ব্যবহার করতে পারেন :

mysql -f my_database -u my_username -p -h  
my_new_database.xxxxxxxxx.us-east-1.rds.amazonaws.com < my_database.sql

-fত্রুটি রিপোর্ট হবে, কিন্তু ডাম্প ফাইলের বাকি প্রক্রিয়া অব্যাহত থাকবে।


হাই @ রস, এর জন্য ধন্যবাদ দুর্ভাগ্যক্রমে, ব্যবহার -fসাহায্য করে না। আমি একই ত্রুটি পেয়েছি। আপনার লিঙ্কটি ব্যবহার করে, আমি আরডিএস ক্লাইট সরঞ্জাম সিনট্যাক্স নিয়ে সমস্যায় পড়ছি। অর্থ, যখন আমি সুযোগগুলি পরিবর্তন করতে যাই তখন আমি নিম্নলিখিত ত্রুটিটি পাই:rds-modify-db-parameter-group: Malformed input-Unrecognized option: -–parameters=name=log_bin_trust_function_creators, Usage: rds-modify-db-parameter-group DBParameterGroupName --parameters "name=value, value=value, method=value" [ --parameters "name=value, value=value, method=value" ...] [General Options]
টিম পিটারসন

এখানে আমার আদেশটি আমাকে উপরের ত্রুটিটি দেয়: ./rds-modify-db-parameter-group mygroup -–parameters "name=log_bin_trust_function_creators, value=on, method=immediate" –I="accesskeyxxxxxx" –S="secretkeyxxxxxxxx"আমি জানি এটি একটি উদ্ধৃতি বা ডাবল-ড্যাশ ইস্যু হতে হবে তবে আমি এখনও এই ধরণের পরিবর্তনগুলির কোনওই কাজ করে না, উ!
টিম পিটারসন

4
-fবিকল্প এটি শুধু অ আপত্তিকর ফাইলে এসকিউএল স্টেটমেন্ট প্রক্রিয়া করা অনুমতি দেবে ত্রুটি দূরে যেতে না হবে। আমি যা পড়েছি তা থেকে, আরডিএস ডাম্প ফাইলে সঞ্চিত পদ্ধতিগুলিতে দম বন্ধ করছে। স্টোর প্রক্রিয়া ছাড়াই ডাম্প ফাইল তৈরি করার চেষ্টা করুন এবং দেখুন যে এটি ঠিক আছে কিনা:mysqldump --routines=0 --triggers=0 --events=0 my_database -u my_username -p
রস স্মিথ II

4
- @ রস, দুর্দান্ত যে কাজ করেছে, আমার ডাটাবেস আছে, বাহ যে একটি বিরক্তিকর বিষয়, মনে হয় যেন এডাব্লুএস সম্পর্কে কিছু করা উচিত।
টিম পিটারসন

কমপক্ষে আমি -fবিকল্প সহ সমস্ত ডেটা লোড করতে পারি । দ্বিতীয় দফায় আলাদাভাবে শুধুমাত্র রুটিন / stred proc, ইত্যাদি ডাম্প হতে পারে
Kaymaz

139
  1. আরডিএস ওয়েব কনসোলটি খুলুন।
  2. "পরামিতি গোষ্ঠী" ট্যাবটি খুলুন।
  3. একটি নতুন প্যারামিটার গ্রুপ তৈরি করুন। কথোপকথনে, আপনার মাইএসকিউএল ডাটাবেস সংস্করণের সাথে সামঞ্জস্যপূর্ণ মাইএসকিউএল পরিবার নির্বাচন করুন, এটির একটি নাম দিন এবং নিশ্চিত করুন। সদ্য নির্মিত প্যারামিটার গ্রুপ নির্বাচন করুন এবং "পরামিতিগুলি সম্পাদনা করুন" ইস্যু করুন।
  4. 'লগইন_বিন_টাস্ট_ফাংশন_ক্রিটরস' প্যারামিটারটি দেখুন এবং এর মানটিকে '1 ′' তে সেট করুন ′
  5. পরিবর্তনগুলি সংরক্ষণ করুন।
  6. "দৃষ্টান্তগুলি" ট্যাবটি খুলুন। আপনার মাইএসকিউএল উদাহরণটি প্রসারিত করুন এবং "সংশোধন করুন" নামক "ইনস্ট্যান্স অ্যাকশন" জারি করুন।
  7. সদ্য নির্মিত প্যারামিটার গ্রুপ নির্বাচন করুন এবং "অবিলম্বে প্রয়োগ করুন" সক্ষম করুন।
  8. "চালিয়ে যান" এ ক্লিক করুন এবং পরিবর্তনগুলি নিশ্চিত করুন।
  9. "সংশোধন" অপারেশন সম্পন্ন হওয়ার জন্য অপেক্ষা করুন।
  10. আবার, "দৃষ্টান্তগুলি" ট্যাবটি খুলুন। আপনার মাইএসকিউএল উদাহরণটি প্রসারিত করুন এবং "ইনস্ট্যান্স অ্যাকশন" ট্যাবটি প্রসারিত করুন এবং "রিবুট" নির্বাচন করুন।

> ৯ ম পয়েন্টটি কী করবে ... আপনি পূর্বনির্ধারিত পরামিতি গোষ্ঠীটি ব্যবহার করার জন্য নিজের উদাহরণটি সামঞ্জস্য করুন। আরও বিশদে বিশদ জন্য ড্যানিয়েল ফেরবার্সের
অ্যান্ড্রুএল

এটি কি আরডিএস মাইএসকিএল প্রতিলিপি বন্ধ করবে?
রামরতন গুপ্ত

হাই @ অরুন-আর, আমি আপনার বর্ণিত পদক্ষেপগুলি পেরিয়ে যাচ্ছি, তবে 'লগ_বিন_স্রোত_ফানশন_ক্রিটরস' প্যারামিটারটি উপলভ্য নয়। আমি মনে করি সর্বশেষ AWS আরডিএসে কিছু পরিবর্তন হয়েছে। আপনি এখন আমাকে এটি কিভাবে করতে পারেন দয়া করে আমাকে সাহায্য করতে পারেন? ধন্যবাদ,
পবন বিকাশকারীরা

@ রামরতনগুপ্ত এটি থামবে না
-r

4
@ অরুন-আর আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ আমি আমার সমস্যা সমাধান করেছি। আসলে আমি তালিকায় লগ_বিন_স্টাস্ট_ফাংশন_ক্রিটরকে পেয়েছি। তবে আমার সমস্যা AWS সহায়তা
পবন ডেভেলপারদের

33

ডাম্প ফাইলে ট্রিগার এবং সঞ্চিত পদ্ধতিগুলির সাথে সমস্যাটি হ'ল এই সংজ্ঞাগুলির মধ্যে এমন ব্যবহারকারী অন্তর্ভুক্ত থাকে যাকে ডিফাইনার দ্বারা সঞ্চিত পদ্ধতিটি তৈরি করা উচিত। ব্যবহারকারী আরডিএসে সম্ভবত উপস্থিত নেই তাই ত্রুটি উত্থাপিত হয়। ডাম্প ফাইলটি লোড করতে সক্ষম হয়ে আপনি সেড বা পার্ল ব্যবহার করে ডিফাইনারটি সরিয়ে এবং আমদানি সম্পাদনকারী ব্যবহারকারীর সাথে সঞ্চিত পদ্ধতি / ট্রিগার তৈরি করতে পারেন।

perl -pe 's/\sDEFINER=`[^`]+`@`[^`]+`//' < mysqldump.sql > mysqldump.fixed.sql

এখন আপনি স্থির ডাম্প ফাইলটি লোড করতে সক্ষম হবেন

mysql my_database -u my_username -p -h rds_host < mysqldump.fixed.sql

পূর্বের উত্তরে বলা হয়েছে, আপনার ডিবি প্যারামিটারটি সেট করা উচিত:

log_bin_trust_function_creators = 1

4
পরিষ্কার-পরিচ্ছন্নতা পরিষ্কারের কাজটি সিড দিয়েও সম্পন্ন করা যেতে পারে: সেড-আই '/ ডিফাইনার OldDefiner@ @ localhost/ ডিফাইনার = NewDefiner@ localhost/ জি'। / টার্গেটসকিএলফিল.এসকিএল
সিলিকনর

16

আমার জন্য, আমার ডাম্প ফাইলে কেবল 2 টি কমান্ড ছিল যার জন্য সুপার সুবিধাগুলি প্রয়োজন:

  • SET @@GLOBAL.gtid_purged
  • SET @@SESSION.SQL_LOG_BIN

মাইএসকিলডাম্প ডক্স অনুসারে আপনি এগুলি অক্ষম করতে পারবেন --set-gtid-purged=OFF

তারপর দিকে তাকিয়ে মানুষ mysqldump :

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

সুতরাং আমি --set-gtid-purged=OFFআমার mysqldumpকমান্ডে যুক্ত করার সিদ্ধান্ত নিয়েছি এবং এরপরে আমি সফলভাবে ফলাফল ডাম্প ফাইলটি আমদানি করতে পারি।


4
হ্যাঁ, এটি ছিল। আমার ডাম্প ফাইল তুলনামূলকভাবে ছোট ছিল, তাই আমি এটি থেকে এই 2 টি কমান্ডের সমস্ত উপস্থিতি সরিয়েছি।
জোলবায়ার

6

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

এই পদক্ষেপগুলি অনুসরণ করুন এবং আপনার সমস্যাটি স্থির হবে https://aws.amazon.com

প্রক্রিয়া তৈরি করার সময় আপনার নির্দিষ্ট ব্যবহারকারীর ব্যবহার করা উচিত নয়। একটি সাধারণ সেড কমান্ড এটি মুছে ফেলতে পারে।


5

সম্পাদনা ছাড়াও

লগ_বিন_টাস্ট_ফানশন_ক্রিটরস = 1

আপনাকে আপনার ডাম্প ফাইল থেকে সমস্ত ডিফাইনার অপসারণ করতে হবে , এসইডি কমান্ডের জন্য নিম্নলিখিত লিঙ্কটি পরীক্ষা করুন যা আপনার এসকিএল ডাম্প ফাইল পরিষ্কার করতে সহায়তা করতে পারে।

https://www.percona.com/blog/2014/07/02/ using-mysql-triggers-and-views-in-amazon-rds/#comment-10968243


1

অরুন-আর উত্তর ব্যবহারের পরে, সমস্যাটি সমাধান না হলে আপনাকে আপনার ডাম্প ফাইলটি পরিবর্তন করতে হবে। এটা সহজ.

ডাম্প ফাইলে আপনি লাইনগুলি দেখতে পাবেন:

DELIMITER ;;
CREATE DEFINER=`username_from_dumped_database`@`host_from_dumped_database` PROCEDURE `procedure_or_function_name`()
BEGIN

আপনাকে প্রতিস্থাপন করতে হবে:

  • username_from_dumped_database আরডিএস ডাটাবেসে আপনার ব্যবহারকারীর নাম দ্বারা।
  • host_from_dumped_databse দ্বারা %

কেন জানি না তবে এই কৌশলটি আমার পক্ষে কাজ করেছিল। এটি করার জন্য একটি সাধারণ পাঠ্য সম্পাদক যথেষ্ট।

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