Дамп MySQL по запросу
можно сделать mysqldump
один SQL query
?
Я хочу сбросить весь
9 ответов
не mysqldump, но MySQL cli...
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
вы можете перенаправить его в файл, если вы хотите :
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
обновление: Оригинальный пост спросил, Может ли он сбросить из базы данных по запросу. То, что он просил и что он имел в виду другой. Он действительно хотел просто mysqldump все таблицы.
mysqldump --tables myTable --where="id < 1000"
вы можете сбросить запрос как csv, как это:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
дамп таблицы с помощью запроса where:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
дамп всей таблицы:
mysqldump mydatabase mytable > data.sql
Примечания:
- заменить
mydatabase
,mytable
, и оператор where с вашими желаемыми значениями. - по умолчанию
mysqldump
будетDROP TABLE
иCREATE TABLE
операторы в его выходных данных. Поэтому, если вы хотите не удалять все данные в таблице когда восстановление из сохраненного файла данных, убедитесь, что вы используете--no-create-info
выбор. - вам может потребоваться добавить соответствующий
-h
,-u
и-p
опции для приведенных выше команд примера, чтобы указать желаемый хост базы данных, пользователя и пароль соответственно.
вы можете использовать -- where option на mysqldump для получения вывода, который вы ждете:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
более 100 строк из теста.t1 будет сброшен из таблицы базы данных.
Ура, WB
объединение многого из вышеперечисленного - мой реальный практический пример, выбор записей на основе meterid и timestamp. Я годами нуждался в этой команде. Выполняется очень быстро.
mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep '^INSERT' > 5406.sql
MySQL Workbench также имеет эту функцию аккуратно в GUI. Просто выполнить запрос, щелкните значок "сохранить" рядом с экспорт/импорт:
затем выберите " инструкции SQL INSERT (*.SQL)" в списке.
введите имя, нажмите Сохранить, подтвердите имя таблицы, и у вас будет файл дампа.
Если вы хотите экспортировать последнее n количество записей в файл, вы можете запустить следующее:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
вышеуказанное сохранит последние 100 записей в export_file.SQL, если в таблице вы экспортируете из автоинкрементных столбцов идентификаторов.
вам нужно будет изменить значения пользователя, localhost, базы данных и таблицы. При необходимости можно изменить столбец id и экспортировать имя файла.
MySQL экспорт результатов запроса командной строки:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt