답변:
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"
이 작동합니다
mysqldump --databases X --tables Y --where="1 limit 1000000"
다음과 같이 쿼리를 csv로 덤프 할 수 있습니다.
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scp
연결이 종료 된 후 덤프 된 파일을 검색 할 수 있습니다 . 여기 예가 있습니다. scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
where 쿼리를 사용하여 테이블을 덤프하십시오.
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
전체 테이블을 덤프하십시오.
mysqldump mydatabase mytable > data.sql
노트:
mydatabase
, mytable
그리고 원하는 값으로 어디 문.mysqldump
이 포함됩니다 . 따라서 저장된 데이터 파일에서 복원 할 때 테이블의 모든 데이터를 삭제하지 않으려면 옵션 을 사용해야합니다 .DROP TABLE
CREATE TABLE
--no-create-info
-h
, -u
및 -p
옵션 을 추가해야 할 수도 있습니다 .마지막 n 개의 레코드를 파일로 내보내려면 다음을 실행할 수 있습니다.
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
위의 내용은 내보내는 테이블에 자동 증가 ID 열이 있다고 가정하면 마지막 100 개의 레코드를 export_file.sql에 저장합니다.
사용자, 로컬 호스트, 데이터베이스 및 테이블 값을 변경해야합니다. 선택적으로 id 열과 내보내기 파일 이름을 변경할 수 있습니다.
mysql 질의 결과 명령 행 내보내기 :
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt