Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Mengganti Nama Database di MySQL

Dalam beberapa kasus, mungkin diinginkan untuk mengubah nama database MySQL dengan cepat. Meskipun dulu ada RENAME DATABASE perintah di versi MySQL yang lebih lama yang dimaksudkan untuk melakukan tugas ini, RENAME DATABASE sejak itu telah dihapus dari semua versi yang lebih baru untuk menghindari risiko keamanan.

Sebagai gantinya, kami akan secara singkat mengeksplorasi beberapa metode opsional yang dapat digunakan untuk mengganti nama database MySQL Anda dengan cepat dan aman.

Membuang dan Mengimpor Ulang

Saat bekerja dengan database yang relatif kecil, metode tercepat biasanya menggunakan mysqldump perintah shell untuk membuat salinan dump dari seluruh database, kemudian mengimpor semua data ke database yang baru dibuat dengan nama yang tepat.

Mulailah dengan mengeluarkan mysqldump berikut ini perintah dari prompt shell Anda, ganti username yang sesuai , password , dan oldDbName nilai-nilai. mysqldump digunakan untuk membuat cadangan fisik database, sehingga kita dapat menggunakan salinan ini untuk mengimpor data kembali ke database baru.

$ mysqldump -u username -p"password" -R oldDbName > oldDbName.sql

Kami menggunakan -p tandai segera diikuti oleh kata sandi kami untuk terhubung ke database (tanpa spasi di antaranya) dan hindari permintaan entri kata sandi saat mengeluarkan perintah ini. Pastikan untuk meninggalkan kutipan di sekitarnya karena kata sandi dengan karakter unik dapat menyebabkan masalah eksekusi. -R flag juga penting dan memberitahu mysqldump untuk menyalin prosedur dan fungsi yang tersimpan bersama dengan data normal dari database.

Selanjutnya gunakan mysqladmin perintah untuk membuat database baru:

$ mysqladmin -u username -p"password" create newDbName

Terakhir, dengan database baru yang dibuat, gunakan mysql untuk mengimpor file dump yang kita buat ke database baru.

$ mysql -u username -p"password" newDbName < oldDbName.sql

Tiga perintah dasar dan database baru Anda telah dibuat. Setelah Anda memverifikasi semuanya sebagaimana dimaksud, Anda dapat melanjutkan dengan menghapus database lama.

Mengganti Nama Tabel dengan InnoDB

Jika Anda menggunakan MySQL versi 5.5 (atau lebih tinggi), kemungkinan besar Anda menggunakan mesin penyimpanan InnoDB, yang membuat tugas mengganti nama database menjadi cukup sederhana.

Singkatnya, Anda dapat menggunakan RENAME TABLE perintah dalam prompt MySQL untuk secara efektif mengubah nama database tabel tertentu sambil menjaga nama tabel tetap utuh. Namun, melakukannya mengharuskan database dengan nama baru sudah ada, jadi mulailah dengan membuat database baru menggunakan mysqladmin perintah shell seperti yang terlihat di atas.

Misalnya, jika kita sudah memiliki catalog database yang ingin kita ganti namanya menjadi library , pertama-tama kita buat library baru basis data:

$ mysqladmin -u username -p"password" create library

Sekarang sambungkan ke mysql prompt dan keluarkan RENAME TABLE MySQL berikut ini pernyataan untuk tabel pilihan Anda:

mysql> RENAME TABLE catalog.books TO library.books;

Kami baru saja memindahkan keseluruhan books tabel dari catalog database ke library baru kami basis data. Perintah ini dapat dijalankan secara manual untuk semua tabel yang relevan sesuai keinginan, atau kita dapat menyederhanakan tugas dengan skrip shell seperti yang terlihat di bawah ini.

Menggunakan Skrip Perintah Shell

Untuk semua kecuali database terkecil, secara manual menerbitkan RENAME TABLE perintah untuk setiap tabel tidak akan sangat praktis atau efisien, tetapi untungnya kita dapat menggunakan perintah shell sederhana menggunakan mysql utilitas untuk mengulang semua tabel di database lama kami dan mengganti namanya, sehingga memindahkannya ke database baru.

Ini adalah struktur dasar dari perintah:

$ mysql -u dbUsername -p"dbPassword" oldDatabase -sNe 'show tables' | while read table; do mysql -u dbUsername -p"dbPassword" -sNe "RENAME TABLE oldDatabase.$table TO newDatabase.$table"; done

Jadi, untuk perpindahan kita dari catalog lama database ke library baru database, kami akan mengubah pernyataan sebagai berikut:

$ mysql -u dbUsername -p"dbPassword" catalog -sNe 'show tables' | while read table; do mysql -u dbUsername -p"dbPassword" -sNe "RENAME TABLE catalog.$table TO library.$table"; done

Kami juga telah menambahkan beberapa tanda ke perintah kami:

  • -s adalah tanda untuk silent mode jadi ada lebih sedikit output ke shell.
  • -N mencegah keluaran nama kolom dari hasil.
  • -e menunjukkan pernyataan yang mengikuti -e bendera harus dieksekusi kemudian shell berhenti. Ini berarti pernyataan 'show tables' dan "RENAME TABLE catalog.$table TO library.$table" dieksekusi sebagai pernyataan SQL normal, seperti yang diinginkan.

Itu saja. Database MySQL Anda sekarang telah diganti namanya secara efektif.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Data Penjualan 3 Bulan Terakhir di MySQL

  2. Kondisi WHERE di MySQL dengan 16 Contoh Query Berbeda

  3. Melewati larik ke kueri menggunakan klausa WHERE

  4. Bagaimana Cara Menggunakan Pernyataan KASUS di MySQL?

  5. PyInstaller, file spesifikasi, ImportError:Tidak ada modul bernama 'bla'