Bagaimana cara mengganti nama database MySQL?
Manual online MySQL telah mengatakan tentang perintah RENAME DATABASE (halaman dokumentasi ini telah dihapus oleh Oracle beberapa waktu lalu):
Pernyataan ini ditambahkan di MySQL 5.1.7 tetapi ternyata berbahaya dan dihapus di MySQL 5.1.23.
Jadi, bagaimana caranya? Alasannya: Kami mulai dengan nama kode untuk proyek dan ingin nama database sekarang untuk mencerminkan nama pasti proyek.
Jawaban:
Dari posting blog ini oleh Ilan Hazan:
Di MySQL tidak ada dukungan untuk penggantian nama basis data. Untuk mengganti nama database MySQL Anda dapat melakukan salah satu dari yang berikut:
Buat database baru dan ganti nama semua tabel di database lama menjadi database baru:
Di shell Linux, gunakan mysqldump untuk membuat cadangan database lama, kemudian mengembalikan database yang dibuang di bawah nama baru menggunakan utilitas MySQL. Akhirnya, gunakan perintah drop database untuk menjatuhkan database lama. Opsi ini dapat berkinerja buruk untuk database besar.
Tulis skrip Linux sederhana (solusi favorit saya)
Jika semua tabel Anda adalah MyISAM, Anda dapat mengganti nama nama folder database lama:
sumber
SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';
;MySQL agak menyebalkan untuk ini. Satu-satunya solusi yang andal adalah menggunakan
phpMyAdmin
.Login
-> clickScheme
-> clickOperations
-> cariRename database to:
-> tulisNewName
> clickGo
.Sesimpel itu. Semua izin dibawa.
sumber
Saya menemukan solusi yang sangat sederhana: Matikan MySQL, ganti nama direktori database dan restart. Itu saja!
Agak berbahaya jika Anda memiliki kode SQL atau data yang merujuk pada nama lama. Maka Anda perlu mengubahnya juga sebelum Anda me-restart aplikasi. Tapi saya tidak perlu melakukan itu, tetapi YMV.
Googling memberikan beberapa petunjuk seperti ini:
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
sumber
Saya cenderung membuat database baru, dan kemudian membuang tabel dari yang lama, ke file .sql (dengan mysqldump), mengedit file, melakukan beberapa jenis
s/old_database/new_database/g
dan kemudian mengimpornya kembali ke db baru.Mungkin bukan cara terbaik untuk melakukannya, tetapi itu berhasil.
sumber
Jika Anda memiliki kesempatan untuk menggunakan Alat Manajemen MySQL (mis. PhpMyAdmin) maka Anda dapat dengan mudah mengubah nama karena mereka membuat permintaan untuk Anda.
Di phpMyAdmin mereka juga membuat setiap tabel dan memasukkan data dengan "INSERT INTO ... SELECT * FROM ...". Jadi dengan merantai mereka menyalin data.
Jika Anda tidak dapat melakukan ini, saya akan merekomendasikan untuk melakukan dump dan mengimpor kembali sql-File ke database baru.
Semoga berhasil!
Salam, Ben.
sumber
Saya menggunakan metode berikut untuk mengubah nama database
mengambil cadangan file menggunakan mysqldump atau alat DB misalnya heidiSQL, administrator mysql dll
Buka file cadangan (mis. Backupfile.sql) di beberapa editor teks.
Cari dan ganti nama database dan simpan file.
Pulihkan file sql yang diedit
sumber