Saya mahu menggunakan mysqlsh untuk melakukan perkara berikut:
mysqldump -R DATABASE > DATABASE.sql
) mysql --database=NEWDATABASE < DATABASE.sql
)Apabila saya berlari mysqlsh --execute 'util.dumpTables("DATABASE", [], "SQL/DATABASE", {all:true});'
时,它当然只是转储表,这可以轻松地使用此命令导入到全新的数据库 mysqlsh --database=NEWDATABASE --execute 'util.loadDump("SQL/DATABASE", {schema: 'NEWDATABASE',ignoreVersion:true,resetProgress:true});
. Masalahnya ialah ia kehilangan fungsi dan prosedur tersimpan.
Kemudian saya mencuba mysqlsh --execute 'util.dumpSchemas(["DATABASE"], "DATABASE");'
,然后使用 mysqlsh --database=NEWDATABASE --execute 'util 将其加载到新数据库中.loadDump("DATABASE", {dryRun: true,ignoreVersion:true});'
tetapi saya segera perasan bahawa ia cuba memuatkan ke pangkalan data asal, bukan pangkalan data baru saya. Jadi bagaimana saya memuatkannya ke dalam pangkalan data baharu dengan nama yang sama sekali berbeza?
Sekiranya anda tertanya-tanya, saya cuba belajar cara memanfaatkan mysqlsh sepenuhnya untuk kes penggunaan saya. Jadi mysqldump
lama bukan pilihan dalam kes ini.
Saya rasa anda hanya boleh menggunakan editor teks untuk mengedit
.sql
fail sebelum cuba memuatkannya.Alat ini sebenarnya membuang skema dan mengimportnya ke contoh MySQL yang berbeza tetapi mengekalkan nama skema yang sama.