Как экспортировать базу данных MySQL с помощью командной строки?

267

У меня есть база данных, которая довольно велика, поэтому я хочу экспортировать ее с помощью командной строки, но я не знаю, как это сделать.

Я использую WAMP.

  • 6
    DOS? вы используете Windows 98? Или вы имеете в виду командную строку?
  • 0
    Если вы используете wamp, у вас также должен быть phpmyadmin с опцией экспорта
Теги:

15 ответов

418
Лучший ответ

Сначала проверьте, распознает ли командная строка команду mysql. Если вы не заходите в команду и введите:

set path=c:\wamp\bin\mysql\mysql5.1.36\bin

Затем используйте эту команду для экспорта вашей базы данных:

mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql

Затем вы будете запросить пароль для базы данных.

Это экспортирует базу данных по пути, в котором вы сейчас находитесь, при выполнении этой команды

Примечание: Вот несколько подробных инструкций относительно импорта и экспорта

  • 7
    выдает ошибку «mysqldump: ошибка: 1049: неизвестный пароль базы данных при выборе базы данных», но работает, когда я удаляю «-p userpassword»
  • 0
    какая польза от переменной пути ???
Показать ещё 10 комментариев
85

Просто используйте следующую команду:

Для экспорта:

mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz] 

Для импорта:

gunzip < [compressed_filename.sql.gz]  | mysql -u [user] -p[password] [databasename] 

Примечание. Между ключевым словом "-p" и вашим паролем нет пробела.

  • 1
    Я думаю, что вы упустили тот факт, что он использует WAMP - Windows ... gunzip / gzip не входят в комплект Windows. Возможно, вы запустите команду после установки какого-то материала, но я думаю, что вы упустили этот факт.
  • 1
    спасибо за gzip. работал как шарм.
Показать ещё 1 комментарий
26

Ну, вы можете использовать команду ниже,

mysqldump --databases --user=root --password your_db_name > export_into_db.sql

и сгенерированный файл будет доступен в том же каталоге, в котором вы выполнили эту команду.

Вы можете найти больше в официальной ссылке для mysqldump: Импортировать базу данных MySQL экспорта или это

Примечание: используйте --databases вместо --database, так как последний больше не поддерживается.

Наслаждайтесь:)

  • 3
    Для тех, кто получает сообщение об ошибке «Доступ запрещен при использовании LOCK TABLES», следует добавить в команду параметр «--single -action».
  • 0
    Я получил сообщение об ошибке mysqldump: [ERROR] unknown option '--database' но с исключением --database это сработало.
Показать ещё 1 комментарий
19

Прежде всего откройте командную строку, затем откройте каталог bin в cmd (надеюсь, вы знаете команды cmd) перейдите в каталог bin вашей папки MySql в файлах WAMP.

выполнить команду

mysqldump -u db_username -p database_name > path_where_to_save_sql_file

Нажмите кнопку ввода, чтобы экспортировать определенную базу данных и создать файл sql в данном месте.

Надеюсь, у тебя это получилось:) если у вас есть какие-либо вопросы, сообщите мне.

  • 0
    Мой друг, я попытался немного объяснить процесс. вместо того, чтобы давать прямую команду
18

Найдите свой экземпляр mysql с помощью:

which mysql

Если это правильно, то экспортируйте с помощью следующего (иначе перейдите к экземпляру mysql в вашей папке mamp в bin):

mysqldump -u [username] -p [password] [dbname] > filename.sql

И если вы хотите закрепить его в момент времени:

mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz

Затем вы можете переместить этот файл между серверами:

scp [email protected]:/path_to_your_dump/filename.sql.gz your_detination_path/

(где xxx.xxx.xxx.xxx - IP-адрес сервера)

И затем импортируйте его с помощью:

gunzip filename.sql.gz | mysql -u [user] -p [password] [database]
  • 4
    Опять же W AMP => Windows. которая является командой Linux. gunzip / gzip не поставляются в комплекте с Windows - и могут быть недоступны. scp ... ты понял.
  • 1
    @ Откройся, Что с фетишем Linux?
Показать ещё 1 комментарий
17

Перейдите в командную строку на этом пути,

C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>

Затем передайте эту команду для экспорта вашей базы данных (без пробела после -p)

mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql

8

Для экспорта PROCEDURE, FUNCTION и TRIGGER тоже добавьте параметр --routines:

mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql

  • 0
    Переключатель --routines имеет значение :) Любые советы, как экспортировать только ПРОЦЕДУРЫ, ФУНКЦИИ И ТРИГГЕРЫ? Для тех, кто забыл про коммутатор и экспортировал «чистые» БД без «алгоритмов» :)
  • 0
    Кстати, ключ --events необходим для --events событий планировщика событий, а TRIGGER всегда экспортируются, если не --skip-triggers (в соответствии с 7.4.5.3 Сброс хранимых программ )
7
mysqldump -h [host] -p -u [user] [database name] > filename.sql

Пример в localhost

mysqldump -h localhost -p -u root cookbook > cookbook.sql
7

Я установил свой сервер wamp в D: drive, поэтому вам нужно перейти к следующему пути из командной строки ur → (и если вы установили ur wamp в c: drive, то просто замените d: wtih c: here )

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name > "d:\backupfile.sql"

здесь root - пользователь моего phpmyadmin пароль - это пароль для phpmyadmin, поэтому , если у вас не установлен пароль для root, ничего нечего в этом месте, db_name - это база данных (для которой база данных u берет резервную копию) , backupfile.sql - это файл, в котором вы хотите сохранить резервную копию урской базы данных, а также можете изменить местоположение файла резервной копии (d:\backupfile.sql) в любое другое место на вашем компьютере.

  • 0
    Из всех способов, которые я нашел, этот ответ - единственный, который сработал для меня. Я использую MySQL версии 5.6, поэтому путь для командной строки был ... \ MySQL \ MySQL Server 5.6 \ bin. Вам придется использовать имя пользователя и пароль администратора MySQL, указанные для конкретной базы данных не будут работать. Спасибо, Сачин. Даже инструкции в руководстве MySQL для v.5.6 не работают. Синтаксис там неполный.
  • 0
    пожалуйста, Макс ...... :)
Показать ещё 1 комментарий
6

Ответ Opentuned велик. Одна маленькая вещь - удалить фактический пароль из командной строки:

mysqldump -u [username] -p [dbname] > filename.sql

Это предотвращает поиск людей в истории для пароля.

4

Передайте эту команду для экспорта вашей базы данных, это также будет включать дату

mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_'date '+%m-%d-%Y''.sql.gz

(после пробела после -p)

  • 0
    Обратите внимание, что указание --databases будет вставлять операторы как CREATE DATABASE XYZ; и USE XYZ; , что не удобно при импорте SQL в другую БД с другим именем ...
1

Синтаксис

(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)

Пример

c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql

где d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe будет вашим фактическим путем mysqldump.exe, mydbname - это имя база данных, которую вы хотите экспортировать, и d:\mydb.sql - это путь, в котором вы хотите сохранить экспортированную базу данных.

0

Вы можете использовать этот script для экспорта или импорта любой базы данных из терминала по этой ссылке: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh

echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo

mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql

if [ "$action" == "export" ]; then
    if [ "$location_change" == "y" ]; then
        read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
        echo
    else
        echo -e "Using default location of mysqldump\n"
    fi
    read -p 'Give the name of database in which you would like to export: ' db_name
    read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
    $mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
    if [ "$location_change" == "y" ]; then
        read -p 'Give the location of mysql that you want to use: ' mysql_location
        echo
    else
        echo -e "Using default location of mysql\n"
    fi
    read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
    read -p 'Give the name of database in which to import this file: ' db_name
    $mysql_location -u $u_name -p $db_name < $sql_file
else
    echo "please select a valid command"
fi
0

Для ОС Windows:

Когда вы получаете сообщение об ошибке 1064 mysql (42000) при попытке выполнить команду mysqldump, выйдите из текущего терминала. И выполните команду mysqldump.

mysql>exit 
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql
0

Я использовал wamp-сервер. Я пробовал

c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql

root - мое имя пользователя для mysql, и если у вас есть пароль, укажите его с помощью:

-p[yourpassword]

Надеюсь, что это сработает.

  • 0
    --password необходимо использовать, если вы также пытаетесь ввести пароль

Ещё вопросы

Сообщество Overcoder
Наверх
Меню