programing

명령줄에서 mysql을 통해 단일 쿼리를 실행하려면 어떻게 해야 합니까?

goodjava 2022. 10. 31. 21:15

명령줄에서 mysql을 통해 단일 쿼리를 실행하려면 어떻게 해야 합니까?

스크립트로 작성된 태스크에서 리모트서버에서 단일 쿼리를 실행할 수 있는 것을 검토하고 있습니다.

예를 들어, 직감적으로 다음과 같이 됩니다.

mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
mysql -u <user> -p -e 'select * from schema.table'

(셸이 *를 파일명으로 확장하지 않도록 큰따옴표가 아닌 작은따옴표를 사용합니다).

mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"

사용현황 인쇄물:

-e,--execute=name
종료합니다」 「비활성화」」(「Disable(비활성화」--force history file을 참조해 주세요.

다음은 멋진 셸 트릭으로 할 수 있는 방법입니다.

mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'

'<<'는 셸에 에코로부터의 파이핑과 마찬가지로 그 뒤에 오는 것을 stdin으로 받아들이도록 지시합니다.

테이블 형식 출력을 활성화하려면 -t 플래그를 사용합니다.

자주 실행하는 쿼리의 경우 파일에 저장할 수 있습니다.실행하려는 경우 언제든지 다음을 수행합니다.

mysql < thefile

(물론 모든 로그인 플래그와 데이터베이스 플래그 포함)

echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production

질문 컨테이너화는 그다지 인기가 없었기 때문에 @RC의 답변에 따라 앤서블을 사용하여 하나의 쿼리를 도커라이즈된 데이터베이스 클러스터에 전달합니다.

ansible <host | group > -m shell -a "docker exec -it <container_name | container_id> mysql -u<your_user> -p<your_pass> <your_database> -e 'SELECT COUNT(*) FROM my_table;'"

Ansible을하지 않을 하여 Ansible을 사용하십시오.docker exec -it ...syslog.syslog.

MySQL은 일반 텍스트로 자격 증명을 전달하는 것이 안전하지 않을 수 있다는 경고를 보내므로 위험에 유의하십시오.

mysql 페이지 man "display" :

   You can execute SQL statements in a script file (batch file) like this:

       shell> mysql db_name < script.sql > output.tab

를 「」에 넣습니다.script.sql행해해실

언급URL : https://stackoverflow.com/questions/1602904/how-do-you-run-a-single-query-through-mysql-from-the-command-line