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


48

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

মাইএসকিউএল অনলাইন ম্যানুয়ালটি পুনরায় নামকরণ ড্যাটাবেস কমান্ড সম্পর্কে বলেছে (এই ডকুমেন্টেশন পৃষ্ঠাটি কিছুক্ষণ আগে ওরাকল দ্বারা মুছে ফেলা হয়েছে):

এই বিবৃতিটি মাইএসকিউএল 5.1.7 এ যুক্ত করা হয়েছিল তবে এটি বিপজ্জনক বলে মনে হয়েছিল এবং এটি মাইএসকিউএল 5.1.23-এ সরানো হয়েছে।

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


চারটি উত্তরই বোঝায়। এটি অনেকগুলি সম্ভাব্য সমাধান সহ একটি প্রশ্ন।
স্পষ্টত


উত্তর:


59

ইলান হাজানের এই ব্লগ পোস্ট থেকে :

মাইএসকিউএলে ডাটাবেস নামকরণের জন্য কোনও সমর্থন নেই। কোনও মাইএসকিউএল ডাটাবেসটির নতুন নামকরণের জন্য আপনি নিম্নলিখিতগুলির একটি করতে পারেন:

  1. নতুন ডাটাবেস তৈরি করতে পুরানো ডাটাবেসে সমস্ত টেবিলের নাম পরিবর্তন করুন:

    CREATE database new_db_name;
    RENAME TABLE db_name.table1 TO new_db_name, db_name.table2 TO new_db_name;
    DROP database db_name;
  2. লিনাক্স শেলটিতে, পুরানো ডাটাবেসটির ব্যাক আপ করতে মাইএসকিএলডাম্প ব্যবহার করুন, তারপরে মাইএসকিউএল ইউটিলিটি ব্যবহার করে একটি নতুন নামে ডাম্পড ডাটাবেস পুনরুদ্ধার করুন। শেষ অবধি, পুরানো ডাটাবেস ড্রপ করতে ড্রপ ডাটাবেস কমান্ডটি ব্যবহার করুন। এই বিকল্পটি বৃহত ডাটাবেসের জন্য খারাপভাবে সম্পাদন করতে পারে।

    mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.sql
    mysql -uxxxx -pxxxx -h xxxx -e "CREATE DATABASE new_db_name"
    mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.sql
    mysql -uxxxx -pxxxx -h xxxx -e "DROP DATABASE db_name"
    
  3. একটি সাধারণ লিনাক্স স্ক্রিপ্ট লিখুন (আমার প্রিয় সমাধান)

    #!/bin/bash
    
    dbuser=xxxx
    dbpass=xxxx
    olddb=xxxx
    newdb=xxxx
    
    mysqlconn="mysql -u $dbuser -p$dbpass -h localhost"
    
    $mysqlconn -e "CREATE DATABASE $newdb"
    params=$($mysqlconn -N -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='$olddb'")
    
    for name in $params; do
          $mysqlconn -e "RENAME TABLE $olddb.$name to $newdb.$name";
          echo "Renamed $olddb.$name to $newdb.$name";
    done;
    
    #$mysqlconn -e "DROP DATABASE $olddb"
  4. যদি আপনার সমস্ত টেবিলগুলি মাইআইএসএএম হয় তবে আপনি পুরানো ডাটাবেস ফোল্ডারের নামটি পরিবর্তন করতে পারেন:

    1. মাইএসকিউএল সার্ভারটি বন্ধ করুন,
    2. নতুন নামে ডাটাবেস ফোল্ডারের নাম পরিবর্তন করুন,
    3. মাইএসকিউএল সার্ভার শুরু করুন।

এসকিউএল-তে সরাসরি মাইএসকিউএলে পুনরায় নামকরণের টেবিল কমান্ড তৈরি করার একটি বিকল্প উপায় এখানে রয়েছে: blog.marceloaltmann.com/how-to-rename-a-database-in-mysql
ইয়ভেস মার্টিন

এটি প্রথম সমাধানের জন্য একটি ক্যোয়ারী তৈরি করতে সহায়তা করবে। কেবলমাত্র নাম টেবিলের পিছনে পেস্টের ফলাফলগুলি অনুলিপি করুন SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';;
ঘূর্ণিঝড়

তবে আপনি যদি নতুন ডিবিতে ডেটা
sertোকান

tThanks। এটি সেরা উত্তর। তোমাকে অনেক ধন্যবাদ!
টাইপলজিক

স্ক্রিপ্টটি খুব ঝরঝরে, মারিয়াডিবি 10.1-এ বাক্স থেকে বেরিয়ে কাজ করেছে।
লু

12

মাইএসকিউএল কিন্ডা এটির জন্য সফলকাম। একমাত্র দৃ reliable় নির্ভরযোগ্য সমাধানটি ব্যবহার করা phpMyAdmin

Login-> click Scheme-> click Operations-> সন্ধান করুন Rename database to:-> লিখুন NewName> click Go

এর মত সহজ. সমস্ত অনুমতি সম্পন্ন হয়।


6
জিইউআই সমাধানের জন্য +1, তবে সম্প্রদায়ের উইকির উত্তরের সরল কমান্ড এবং স্ক্রিপ্টগুলিও পুরোপুরি "দৃ and় এবং নির্ভরযোগ্য"
উইল শেপার্ড

7

আমি একটি খুব সহজ সমাধান পেয়েছি: মাইএসকিউএল বন্ধ করুন, ডাটাবেস ডিরেক্টরিটির নতুন নাম দিন এবং পুনরায় চালু করুন। এখানেই শেষ!

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

গুগলিং এই দুটির মতো কয়েকটি পয়েন্টার দেয়:

https://stackoverflow.com/questions/67093/how-do-i-quickly-rename-a-mysql-database-change-schema-name

http://www.delphifaq.com/faq/databases/mysql/f574.shtml


5

আমি একটি নতুন ডাটাবেস তৈরি করার প্রবণতা রেখেছি এবং তারপরে পুরানোটি থেকে টেবিলগুলি একটি .sql ফাইলের মধ্যে (মাইএসকিএলডাম্প সহ) ডাম্প করে ফাইলে সম্পাদনা করব, কিছু ধরণের করব s/old_database/new_database/gএবং তারপরে নতুন ডিবিতে এটি পুনরায় আমদানি করব ।
সম্ভবত এটি করার সর্বোত্তম উপায় নয়, তবে এটি কাজ করে।


2

যদি আপনার কোনও মাইএসকিউএল ম্যানেজমেন্ট-সরঞ্জাম (যেমন পিএইচপিএমইএডমিন) ব্যবহার করার সুযোগ থাকে তবে তারা আপনার জন্য ক্যোয়ারী তৈরি করার সাথে সাথে আপনি সহজেই এটির নামকরণ করতে পারেন।

পিএইচপিএমআইএডমিনে তারা প্রতিটি টেবিল তৈরি করে এবং "INSERT INTO INTO ... SEFFROM ..." দ্বারা ডেটা .োকান। তাই শিকল দিয়ে তারা ডেটা অনুলিপি করে।

আপনি যদি এটি না করতে পারেন তবে আমি একটি ডাম্প তৈরি করতে এবং নতুন ডাটাবেসে স্ক্যাল-ফাইল পুনরায় আমদানির পরামর্শ দেব।

শুভকামনা!

শুভেচ্ছা, বেন।


2

আমি ডাটাবেসটির নতুন নামকরণের জন্য নিম্নলিখিত পদ্ধতিটি ব্যবহার করেছি

  1. মাইএসকিএলডাম্প বা যে কোনও ডিবি সরঞ্জাম যেমন হেইডিএসকিউএল, মাইএসকিএল প্রশাসক ইত্যাদি ব্যবহার করে ফাইলটির ব্যাকআপ নিন

  2. কিছু পাঠ্য সম্পাদকটিতে ব্যাক আপ (যেমন ব্যাকআপফাইল.এসকিউএল) ফাইলটি খুলুন।

  3. ডাটাবেসের নাম অনুসন্ধান করুন এবং প্রতিস্থাপন করুন এবং ফাইলটি সংরক্ষণ করুন।

  4. সম্পাদিত স্কয়ার ফাইল পুনরুদ্ধার করুন

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