Я віддаляюся від Linode, бо не маю необхідних навичок систематичного управління Linux; перед тим, як завершити перехід на більш зручну послугу, мені потрібно завантажити вміст бази даних MySQL. Чи є спосіб це зробити з командного рядка?
Я віддаляюся від Linode, бо не маю необхідних навичок систематичного управління Linux; перед тим, як завершити перехід на більш зручну послугу, мені потрібно завантажити вміст бази даних MySQL. Чи є спосіб це зробити з командного рядка?
Відповіді:
Ви можете досягти цього за допомогою функції командного рядка mysqldump .
Наприклад:
Якщо це цілий БД, то:
$ mysqldump -u [uname] -p db_name > db_backup.sql
Якщо це все БД, то:
$ mysqldump -u [uname] -p --all-databases > all_db_backup.sql
Якщо це конкретні таблиці в БД, то:
$ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql
Ви навіть можете перейти до автоматичного стиснення результатів за допомогою gzip (якщо ваша БД дуже велика):
$ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz
Якщо ви хочете зробити це віддалено, і у вас є доступ до відповідного сервера, тоді буде працювати наступне (припускаючи, що сервер MySQL знаходиться на порту 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql
Він повинен скинути .sql
файл у папку, з якої запускається командний рядок.
EDIT: Оновлено, щоб уникнути включення паролів до команд CLI, використовуйте -p
параметр без пароля. Він запропонує вам це, а не записувати його.
wget
або scp
буде необхідно для отримання зазначеного файлу , як тільки побудував.
>
для економії я скоріше використовую -r
для запобігання неприємностей із сторонніми символами або того кошмару, що стосується проблем кодування, як зазначено в цій статті .
--result-file=db_backup.sql
замість > db_backup.sql
. Цитата з документації на MySQL : "UTF-16 заборонено як набір символів з'єднання (див. Недопустимі набори символів клієнта ), тому файл дампа не завантажується правильно. Щоб вирішити цю проблему, використовуйте --result-file
опцію, яка створює вихід у Формат ASCII ".
В останніх версіях mysql, принаймні в моїй, ви не можете ввести свій пропуск в команду безпосередньо.
Ви повинні запустити:
mysqldump -u [uname] -p db_name > db_backup.sql
і тоді він запитає пароль.
-p
опцією та фактичним паролем робить трюк
Якщо ви завантажуєте з віддаленого сервера, ось простий приклад:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
-P означає, що ви введете пароль, він не стосується імені db_name. Після введення команди вам буде запропоновано пароль. Введіть його та натисніть клавішу Enter.
У Windows потрібно вказати скриньку mysql, де знаходиться mysqldump.exe.
cd C:\xampp\mysql\bin
mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql
збережіть це у текстовому файлі, такому як backup.cmd
mysql
команди звідусіль, не знаходячись у своєму каталозі.
Відкрийте командний рядок та введіть цю команду безпосередньо. Не заходьте всередину mysql і введіть цю команду.
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
Перейдіть до каталогу встановлення MySQL та відкрийте звідти cmd. Потім виконайте команду нижче, щоб отримати резервну копію вашої бази даних.
mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
Просто введіть mysqldump
або mysqldump --help
у вашому cmd буде показаноhow to use
Ось мій результат cmd
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
Якщо ви використовуєте MySQL, крім порта за замовчуванням:
mysqldump.exe -u username -p -P PORT_NO database > backup.sql
Для тих, хто хоче ввести пароль в командному рядку. Можна, але рекомендуємо передати це всередині лапок, щоб спеціальний символ не спричинив жодних проблем.
mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql
Використовуйте це Якщо у вас база даних з іменем archiedb, використовуйте цей mysql -p --databases archiedb> /home/database_backup.sql
Якщо припустити, що це Linux, виберіть, де буде збережено файл резервної копії.
Примітка. Цей крок відбувається лише після скидання вашого файлу MySQL (на який звернулась більшість відповідей вище).
Він передбачає, що у вас є згаданий файл дампа на віддаленому сервері, і тепер ви хочете звести його на свій локальний комп'ютер.
Щоб завантажити демпінговий .sql
файл з віддаленого сервера на локальний комп'ютер, зробіть
scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir