====== MySQL Client ======
*[[https://examples.javacodegeeks.com/enterprise-java/sql-enterprise-java/mysql-command-line-tutorial/|MySQL Command Line Tutorial]]
* [[database:mysql:mycli|mycli]] : 더 좋은 CLI
===== SQL File load =====
mysql -u 사용자명 -p -e "source 덤프파일명.sql" DB이름
===== Pipe로 쿼리 로드 =====
[[http://stackoverflow.com/questions/6150675/how-to-feed-mysql-queries-from-bash|linux - How to feed mysql queries from bash]]
echo "select 1" | mysql -u ... -p ...
mysql --host=localhost --user=user --password=password << END
-- queries
END
mysql --host=localhost --user=user --password=password < commands.sql
===== table name 자동완성 =====
* ''my.cnf'' 설정 파일에 다음을 추가하거나
[mysql]
auto-rehash
* 명령행에서 ''--auto-rehash'' 옵션을 주거나
mysql --auto-rehash -u root -p
* ''mysql'' cli 안에서 다음 명령 이후 부터는 ''Tab''키로 테이블 명 자동완성이 된다.
mysql> \#
===== 결과를 Local TSV 파일로 저장하기 =====
* https://stackoverflow.com/a/35086235
* ''%%--batch%%'' : 결과를 tab 구분자로 출력한다.
* ''%%--raw%%'' : ''\n'', ''\t'', ''\0'' 같은 문자열 이스케이핑을 하지 않는다.
mysql -udemo_user -p -h127.0.0.1 --port=3306 \
--default-character-set=utf8mb4 --database=demo_database \
--batch --raw < /tmp/demo_sql_query.sql > /tmp/demo_csv_export.tsv
===== 참조 =====
* [[https://medium.com/daangn/mysql-command-line-interface-21de489e7db5|MySQL Command Line Interface. 요즘은 세상의 모든 컴퓨터 화면이 그래픽 인터페이스로 바뀐 것 처럼…]]