ПредишенСледващото

навигация в публикациите

Периодично там, а след това се издига въпроса за това как да направите резервно копие на базата данни, или как да изпълните SQL скрипт на големи размери.
Ако имате достъп до сървъра чрез FTP само и е забранено от PHP скриптове тече обвивката команди, тогава няма друга алтернатива, освен да търсят скриптове да се извършат необходимите функции в чист PHP. Въпреки това, в повечето хостинг платформи достъпно SSH достъп до сървъра. И на най-* никс сървър, дори ако те не са сървъри на бази данни вече са инсталирани помощните програми за командния ред за MySQL база данни.

И така: имаме нужда от SSH достъп до сървъра, наличието на комунални услуги в MySQL сървър и mysqldump и достъп до излизането им на пазара.
Ако в дома ви компютър има Windows, докато работите със сървъра чрез удобен WinSCP като файлов мениджър, и SSH PuTTY като клиент. WinSCP PuTTY и могат да бъдат свързани. Ако операции са еднократни и няма да бъдат запазени в скрипт, с WinSCP - не е необходимо, достатъчно конзола.

За да направите резервно копие на цялата база данни е необходимо, за да изпълните командата;

mysqldump --host = $ домакин --user = $ потребителското -p $ пас $ db> $ sqlfile

тук:
$ Домакин - сървъра на базата данни
$ Потребител - потребител на базата данни
$ Pass - Password DB
$ Гб - база данни име
$ Sqlfile - име на файла, който сметище, ще се спаси.

За да копирате специфични таблиците в базата данни, можете да използвате следния синтаксис:
mysqldump --host = $ домакин --user = $ потребителското -p $ пас $ db $ таблица 1 $ Таблица 2> $ sqlfile

За да се запълни сметището в друга база данни, изпълнете следната команда:
MySQL --host = $ HOST2 --user = $ user2 -p $ pass2 $ DB2 <$sqlfile

# Втори база данни, в която копието:
pass2 = 'pass2 "
user2 = 'user2 "
db2 = 'db2 "
HOST2 = 'mysql2.ru "

# Име образуват маска: BD_god_mesyats_den.sql
sqlfile = $ db '_' `дата +% Y_% m_.`'.sql"

# Създаване на файл копие на първата база
mysqldump --host = $ домакин --user = $ потребителското -p $ пас $ db> $ sqlfile

# Попълва файла към втората база
MySQL --host = $ HOST2 --user = $ user2 -p $ pass2 $ DB2 <$sqlfile
Архивите се създаде по-добра база по график и веднага компресиране. Ето защо, в следния скрипт активиран екип подбор директория и архивиране.

sqldump.sh:
# Пътят към папката с архиви
дом = '/ Начало / уеб / обратно / DBNAME "
премине = 'парола'
потребителското = "потребител"
DB = "база"
домакин = 'сървъра'

# Изберете подпапка: Сгънете в папката "м" на първия ден от месеца,
# Всяка неделя - в папката "W", а останалите - в "D" на папката
ако [ `дата + .` =" 01 "]
след това
subf = "т"
Елиф [ `дата +% u` =" 7 "]
след това
subf = "w"
още
subf = "г"
Fi

# Задава имената на SQL и tar.gz файлове
sqlfile = $ db '_' `дата +% Y_% m_.`'.sql"
tgzfile = 'назад / "$ subf" / "$ sqlfile'.tgz"

# Dump
mysqldump --host = $ домакин --user = $ потребителското -p $ пас $ db> $ sqlfile
# Ние архивирате
катран -czf $ tgzfile $ sqlfile
# Премахване на сметището
RM $ sqlfile

Ако създадете копие на голяма база данни, с много маси, тя може да бъде получена от тип грешка:
Имаш грешка: 1016: не може да отвори файла: "база данни / маса" (errno: 24), когато се използва за ЗАКЛЮЧВАНЕ МАСИ
след това опция mysqldump трябва да добавите опция затворен-сделката:

mysqldump --single-сделка --host = $ домакин --user = $ потребителското -p $ пас $ db> $ sqlfile

Подкрепете проекта - споделете линка, благодаря!