Загрузка дампа MySQL из командной строки
я удаляюсь от Linode, потому что у меня нет необходимых навыков системного администратора Linux; прежде чем я завершу переход к более удобному для noob сервису, мне нужно загрузить содержимое базы данных MySQL. Есть ли способ сделать это из командной строки?
10 ответов
вы можете сделать это с помощью mysqldump.
например:
если это целая БД, то:
$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql
если это все DBs, то:
$ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql
если это определенные таблицы в БД, то:
$ mysqldump -u [uname] -p[pass] db_name table1 table2 > table_backup.sql
вы даже можете пойти до автоматического сжатия вывода с помощью gzip (если ваша БД очень большая):
$ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz
если вы хотите сделать это удаленно и вы имейте доступ к рассматриваемому серверу, тогда следующее будет работать (предполагая, что сервер MySQL находится на порту 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql
он должен уронить .sql
файл в папке, из которой выполняется командная строка.
EDIT: как отмечено в комментариях, чтобы избежать включения пароля в историю команд, используйте -p
опция без пароля. Он подскажет вам это, а не запишет.
в последних версиях mysql, по крайней мере в моей, Вы не можете поместить свой пропуск в команду напрямую.
вы должны выполнить:
mysqldump -u [uname] -p db_name > db_backup.sql
и тогда он попросит пароль.
в windows вам нужно указать mysql bin, где mysqldump.exe находится.
cd C:\xampp\mysql\bin
mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql
сохраните это в текстовый файл, например backup.cmd
при загрузке с удаленного сервера, вот простой пример:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
- p указывает, что вы введете пароль, он не относится к db_name. После ввода команды вам будет предложено ввести пароль. Введите его и нажмите Enter.
перейдите в каталог установки 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 -u [uname] -p[pass] db_name > db_backup.sql
Если вы используете MySQL, отличный от порта по умолчанию:
mysqldump.exe -u username -p -P PORT_NO database > backup.sql
использовать этот Если у вас есть база данных с именем archiedb, использовать это mysql-p --databases archiedb > /home/database_backup.в SQL
предполагая, что это linux, выберите, где будет сохранен файл резервной копии.