सवाल MySQL डेटाबेस का नाम कैसे बदलें?


MySQL डेटाबेस का नाम कैसे बदलें?

MySQL ऑनलाइन मैन्युअल ने RENAME डेटाबेस कमांड के बारे में कहा है (इस दस्तावेज़ पृष्ठ को कुछ समय पहले ओरेकल द्वारा हटा दिया गया है):

यह कथन MySQL 5.1.7 में जोड़ा गया था लेकिन खतरनाक पाया गया था और   MySQL 5.1.23 में हटा दिया गया था।

तो, कैसे आगे बढ़ना है? तर्क: हमने परियोजना के लिए कोड नाम के साथ शुरुआत की और परियोजना के निश्चित नाम को प्रतिबिंबित करने के लिए डेटाबेस नाम अब चाहते हैं।


38
2017-10-27 07:35


मूल


सभी चार उत्तरों समझ में आता है। यह कई संभावित समाधानों के साथ एक सवाल है। - nalply
stackoverflow.com/questions/12190000/rename-mysql-database/... - Sathish D
stackoverflow.com/questions/67093/... - Sathish D


जवाब:


से इस इलान हज़ान द्वारा ब्लॉग पोस्ट:

MySQL में डेटाबेस नामकरण के लिए कोई समर्थन नहीं है। एक MySQL डेटाबेस का नाम बदलने के लिए आप निम्न में से कोई एक कार्य कर सकते हैं:

  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 का उपयोग करें, फिर MySQL उपयोगिता का उपयोग कर नए नाम के नीचे डंप किए गए डेटाबेस को पुनर्स्थापित करें। अंत में, पुराना डेटाबेस ड्रॉप करने के लिए ड्रॉप डेटाबेस कमांड का उपयोग करें। यह विकल्प बड़े डेटाबेस के लिए बुरी तरह प्रदर्शन कर सकता है।

    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
    
    mysqlconn="mysql -u xxxx -pxxxx -S /var/lib/mysql/mysql.sock -h localhost"
    olddb=xxxx
    newdb=xxxx
    
    #$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";
    done;
    
    #$mysqlconn -e "DROP DATABASE $olddb"
    
  4. यदि आपकी सभी टेबल MyISAM हैं, तो आप पुराने डेटाबेस फ़ोल्डर का नाम बदल सकते हैं:

    1. MySQL सर्वर बंद करें,
    2. डेटाबेस फ़ोल्डर नाम का नाम नए नाम पर बदलें,
    3. MySQL सर्वर प्रारंभ करें।

48
2017-09-27 15:40



यहां MySQL के भीतर SQL में नाम बदलें तालिका कमांड उत्पन्न करने का एक वैकल्पिक तरीका है: blog.marceloaltmann.com/how-to-rename-a-database-in-mysql - Yves Martin
यह पहले समाधान के लिए एक क्वेरी बनाने में मदद करेगा। बस नाम तालिका के पीछे पेस्ट परिणाम कॉपी करें SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';; - Syclone
लेकिन यदि आप नए डीबी में डेटा नहीं डालते हैं, तो वे खो जाएंगे - rainman
tThanks। यह सबसे अच्छा जवाब है। आपको बहुत - बहुत धन्यवाद! - daixtr


MySQL kinda इसके लिए बेकार है। उपयोग करने के लिए एकमात्र ठोस विश्वसनीय समाधान है phpMyAdmin

Login -> क्लिक  Scheme -> क्लिक  Operations -> खोजें Rename database to: -> लिखें NewName > क्लिक  Go

इतना सरल है। सभी अनुमतियां खत्म की जाती हैं।


9
2017-10-27 07:42



एक जीयूआई समाधान के लिए +1, लेकिन समुदाय विकी उत्तर में सरल आदेश और स्क्रिप्ट भी पूरी तरह से "ठोस और भरोसेमंद" हैं - Will Sheppard


मैं एक नया डेटाबेस बनाना चाहता हूं, और उसके बाद पुराने से बाहर टेबल को एक .sql फ़ाइल में (mysqldump के साथ) डंप करें, फ़ाइल संपादित करें, किसी प्रकार का करें s/old_database/new_database/g और फिर इसे नए डीबी में पुनः आयात करें।
शायद इसे करने का सबसे अच्छा तरीका नहीं है, लेकिन यह काम करता है।


4
2017-10-29 13:50





मुझे एक बहुत ही सरल समाधान मिला: MySQL बंद करें, डेटाबेस निर्देशिका का नाम बदलें और पुनरारंभ करें। बस इतना ही!

यदि आपके पास SQL ​​कोड या डेटा पुराने नाम का जिक्र है तो यह थोड़ा खतरनाक है। फिर आपको एप्लिकेशन को पुनरारंभ करने से पहले इसे भी बदलना होगा। लेकिन मुझे ऐसा करने की ज़रूरत नहीं थी, लेकिन वाईएमवी।

गुगलिंग इन दोनों की तरह कुछ पॉइंटर्स देता है:

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


4
2017-09-11 05:26





मैंने डेटाबेस का नाम बदलने के लिए निम्न विधि का उपयोग किया

  1. mysqldump या किसी भी डीबी उपकरण जैसे heidiSQL, mysql व्यवस्थापक आदि का उपयोग कर फ़ाइल का बैकअप लें

  2. कुछ पाठ संपादक में बैक अप खोलें (उदाहरण के लिए backupfile.sql) फ़ाइल।

  3. डेटाबेस नाम को खोजें और बदलें और फ़ाइल को सहेजें।

  4. संपादित एसक्यूएल फ़ाइल को पुनर्स्थापित करें


1
2017-10-27 08:53





यदि आपके पास MySQL प्रबंधन-टूल (उदा। PhpMyAdmin) का उपयोग करने का मौका है तो आप इसे आसानी से नाम बदल सकते हैं क्योंकि वे आपके लिए क्वेरी बनाते हैं।

PhpMyAdmin में वे प्रत्येक तालिका भी बनाते हैं और "INSERT INTO ... चुनें * से ..." द्वारा डेटा डालें। तो चेन करके वे डेटा को कॉपी करते हैं।

यदि आप ऐसा नहीं कर सकते हैं तो मैं एक डंप बनाने और एसक्यूएल-फाइल को नए डेटाबेस में फिर से आयात करने की सलाह दूंगा।

सौभाग्य!

सादर, बेन।


0