Загрузка дампа MySQL из командной строки

306

Я ухожу от Линоде, потому что у меня нет необходимых навыков работы с сисадмином в Linux; прежде чем я завершу переход к более дружественному сервису, мне нужно загрузить содержимое базы данных MySQL. Есть ли способ, которым я могу сделать это из командной строки?

Филипп Копли
источник
2
Попробуйте: mediacollege.com/computer/database/mysql/backup.html
RonaldBarzell
mysqldump - это то, что вы ищете.
Фарук Сахин
1
@AZinkey Я думаю, ты найдешь принятый ответ этого поста и вставил содержание моего ответа (слово в слово) в первую часть их ответа несколько месяцев спустя ...
nickhar

Ответы:

656

Вы можете сделать это, используя функцию командной строки 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файл в папке, из которой вы запускаете командную строку.

РЕДАКТИРОВАТЬ: Обновлено, чтобы избежать включения паролей в команды CLI, используйте -pпараметр без пароля. Он подскажет вам это и не запишет.

nickhar
источник
1
Ваш ответ в сочетании со stackoverflow.com/questions/2989724/… - Должен делать то, что он спрашивает, так как он включал, ему нужно его скачать. Это либо то, либо а, wgetлибо scpпотребуется для извлечения указанного файла после его создания .
Зак
47
Небольшое замечание, что безопаснее не вводить пароль прямо в команде. Только использование опции -p без пароля будет запрашивать пароль при запуске, таким образом, пароль не сохраняется в истории команд (и, возможно, восстанавливается). Итак, используя следующую команду: mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name> db_backup.sql
Питт
3
Вместо того, >чтобы использовать для сохранения, я скорее использую -r, чтобы предотвратить проблемы с посторонними символами или этот кошмар, связанный с проблемами кодирования, как указано в этой статье .
Патрос
1
Для больших / активно обновляемых баз данных используйте параметр --single -action. Это создает контрольную точку и помогает обеспечить последовательность. Также используйте ключи --routines --triggers, если у вас есть хранимые процедуры / функции / триггеры
accord_guy
1
Вы должны использовать --result-file=db_backup.sqlвместо > db_backup.sql. Цитата из документации MySQL : «UTF-16 не разрешен в качестве набора символов соединения (см. Недопустимые клиентские наборы символов ), поэтому файл дампа не будет загружаться правильно. Чтобы обойти эту проблему, используйте --result-fileпараметр, который создает вывод в Формат ASCII ".
Мартин Браун
13

В последних версиях mysql, по крайней мере, в моей, вы не можете поставить свой проход в команду напрямую.

Вы должны запустить:

mysqldump -u [uname] -p db_name > db_backup.sql

и тогда он попросит пароль.

Лоренцо Лерате
источник
2
удаление пробела между -pопцией и реальным паролем делает
свое дело
8

Если загрузка с удаленного сервера, вот простой пример:

mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql

-P указывает, что вы введете пароль, он не относится к db_name. После ввода команды вам будет предложено ввести пароль. Введите его и нажмите Enter.

Андрей
источник
5

В окнах вам нужно указать папку mysql, в которой находится файл mysqldump.exe.

cd C:\xampp\mysql\bin

mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql

сохраните это в текстовый файл, такой как backup.cmd

drooh
источник
или обычно с mysql в переменной PATH, чтобы вы могли запускать mysqlкоманды из любого места, не находясь в его каталоге.
behz4d
2

Откройте командную строку и введите эту команду напрямую. Не входите в mysql и затем введите эту команду.

mysqldump -u [uname] -p[pass] db_name > db_backup.sql
Нитин Раджа
источник
1
Копирование первой строки кода из принятого ответа на пятилетний вопрос - смелая стратегия кармического земледелия.
Филипп Копли
Я попробовал эту команду MySQLdump в приглашении Mysql и не работал. так просто ответил :-)
Нитин Раджа
2

Перейдите в каталог установки MySQL и откройте cmd оттуда. Затем выполните приведенную ниже команду, чтобы получить резервную копию вашей базы данных.

mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
user8376416
источник
1

Просто введите 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
Сугантан Мадхаван Пиллаи
источник
1

Если вы используете MySQL, отличный от порта по умолчанию:

mysqldump.exe -u username -p -P PORT_NO database > backup.sql
Ананд Радж
источник
1

Для тех, кто хочет ввести пароль в командной строке. Можно, но рекомендуется указывать его в кавычках, чтобы специальный символ не вызывал проблем.

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql
Тара Прасад Гурунг
источник
-1

Используйте это Если у вас есть база данных с именем archiedb, используйте этот mysql -p --database archiedb> /home/database_backup.sql

Предполагая, что это Linux, выберите, где файл резервной копии будет сохранен.

Набааса Арчи
источник
shell> mysqldump -p mypassword --databases mydb> /home/backup.sql.
Набааса Арчи
-1

Для пользователей Windows вы можете перейти в папку MySQL для запуска команды

например

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql
Нараян П
источник
1
Вопрос предполагал, что MySQL работает на Linux.
gmauch
-1

Примечание. Этот шаг выполняется только после сброса файла MySQL (к которому относится большинство ответов выше).

Предполагается, что у вас есть указанный файл дампа на удаленном сервере, и теперь вы хотите перенести его на локальный компьютер.

Чтобы загрузить дамп- .sqlфайл с удаленного сервера на локальный компьютер, выполните

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir
Руто Коллинз
источник