База данни - как бързо да преименувате базата данни на MySQL (промяна на името на схемата)

За InnoDB, тя изглежда да се работи, както следва: Създаване на нова празна база данни, а след това преименуване всяка маса от своя страна до нова база данни:

След това, вие ще трябва да настроите резолюцията.

За шел скриптове, можете да използвате един от следните начини:

Забележка: между опцията -p и паролата няма пространство. Ако вашата база данни не разполага с паролата си, изтрийте някои -u потребителско име -ppassword.

Освен това, ако имате съхранени процедури, можете да ги копирате по-късно:

Мисля, че решението е по-просто и е било предложено от някои разработчици. За тази PhpMyAdmin изпълнява.

От PhpMyAdmin, изберете базата данни, която искате да изберете. Разделите имат едно име, "Работа", отидете да преименувате секция. Това е всичко.

Той, както и много други, създава нова база данни с ново име, премахва всички таблици старата база данни за новата база данни и изтриването на старата база данни.

launchctl разтоварване -w

# 47; библиотека # 47; LaunchAgents # 47; homebrew.mxcl.mysql.plist CD # 47; ЮЕсАр # 47; местно # 47; Var # 47; MySQL СрН стар име ново име launchctl натоварване -w

Е, има 2 начина:

Метод 1: В известния метод на преименуване схема база данни - нулиране верига чрез Mysqldump и възстановяване в другата схема, и след това отстраняване на старата схема (ако е необходимо).

Въпреки факта, че по-горе метод е прост, времето и пространството. Какво трябва да направя, ако веригата е по-голяма от 100 GB?. Има методи, чрез които можете да комбинирате горната команда заедно, за да ги държат в пространството, но тя не спести време.

За справяне с такива ситуации, има и друг бърз начин да преименувате схеми, но в същото време трябва да се внимава.

Метод 2: MySQL има много добра функция за преименуване на една маса, която дори работят в различни схеми. Тази операция е преименуването атомно, и никой друг не може да получи достъп до масата, когато е преименуван. Това отнема кратък период от време, тъй като промяна в името на таблицата или схема - това е просто промяна на метаданни. Ако има процесуална процедура за подход преименуване:

Създаване на нова схема на база данни с правилното име. Преименуване на маса от старата схема на новата схема, като се използва командата «RENAME ТАБЛИЦАТА» на MySQL. Изхвърлете старата схема на база данни. Ако има изгледи, тригери, функции, съхранени процедури в схемата, те ще трябва да бъдат пресъздадени също. MySQL «RENAME TABLE» не успее, ако има тригери в таблици. За да поправите това, което можем да направим следното:

1) Dump спусъците, събития и съхранявана Практики в отделен файл. Това се прави с помощта на -Е флаг, -R (в допълнение към -T -d, който нулира тригерите) mysqldump команда. След като спусъците са изчистени, ние ще трябва да ги премахнете от веригата за преименуване TABLE команда за работа.

2) Създаване на списък на «окачване» масите. Те могат да бъдат намерени чрез справка в information_schema.TABLES маса.

3) dhampirs представителство в изходния файл. Представителства могат да бъдат намерени с помощта на заявката в една и съща information_schema.TABLES масата.

4) Drop задейства в настоящата таблица в old_schema.

5) Възстановяване на горните сметища файлове, веднага след като всички намерени в стъпка 2 базови таблици ще бъдат преименувани.

Трудности при използване на методите, описани по-горе. Може би трябва да актуализираме безвъзмездна финансова помощ за потребителите, за да съответстват на правилното име на схема. Те могат да бъдат фиксирани върху обикновена UPDATE mysql.columns_priv маси, mysql.procs_priv, mysql.tables_priv, mysql.db, обновяване име old_schema да new_schema и причиняване на «Промийте привилегии;". Въпреки, че "Метод 2" изглежда малко по-сложно, отколкото "Метод 1", е съвсем възможни сценария. А просто Баш скрипт за изпълнение на горните стъпки в правилната последователност може да Ви помогне да спестите пространството и времето, когато преименувате схема на база данни в следващия път.

Екип Percona дистанционно DBA напиша сценарий, наречен «rename_db», която работи по следния начин:

За да се докаже използването на този скрипт, използвайте приблизителна схема «ЕМИ», създаване на тестови спусъци съхранени процедури в тази схема. Опитайте се да преименувате схемата на базата данни със сценарий, който отнема няколко секунди, за разлика от трудния начин сметището / възстановяване.

Както се вижда от горното, схема на база данни «ЕМИ» бе преименуван «emp_test»-малко от секунда. И накрая, този сценарий Percona, който се използва по-горе за "Метод 2".