명령줄에서 ssh를 통해 원격 시스템에서 MySQL 쿼리 실행
다음 명령을 사용하여 원격 컴퓨터에서 MySQL 쿼리를 실행하려고 합니다.
ssh user@192.168.2.26 "mysql -uroot -proot -e \"use test";""
저는 그 데이터베이스를 사용할 수 없습니다.
작업 명령을 제안해 주십시오.
시도해 보기:
mysql -h host -u root -proot -e "show databases;";
시도해 보기:
ssh root@host "mysql database -e 'query to run on table_name; more queries to run;'"
동일한 작업을 수행할 수 있습니다.user@host
해당 사용자가 일반적으로 mysql을 시작하는 것은 고사하고 SQL 쿼리를 실행할 수 있는 권한을 가진 경우.사용.-e
와 같음--execute
, 뒤에 따옴표를 넣거나(단일 또는 이중) 입력한 후 종료합니다.표준 출력 형식은 다음을 사용하는 것과 동일합니다.--batch
.
MySql에는 데이터베이스를 포함하는 특별한 명령줄 구문이 있는 것 같습니다.
mysql -u user -p -e 'SQL 쿼리' 데이터베이스
이 문서는 좀 오래된 것 같은데 제가 작업하게 되었습니다.
http://www.cyberciti.biz/faq/run-sql-query-directly-on-the-command-line/
ssh를 사용한 최종 작업 명령:
ssh user@host "ssh -u user -e 'show tables;' 데이터베이스 이름"
이는 결국 저에게 bash 스크립트로 효과가 있었습니다.
query='USE [database]; SELECT ...'
mysql='mysql -u [username] -p[password] -e '"'""$query""'"
ssh [username]@[server] -t "$mysql"
암호를 더 안전하게 만들려면 암호를 안전하지 않은 곳에 저장하는 대신 암호에 대한 프롬프트를 추가합니다.
몇 번의 테스트(기본적으로 @King-Wzrd와 동일한 답변) 후에 효과가 있었습니다.
ssh -t kom "mysql -uroot -p -e 'show databases;'"
ssh -t kom "mysql -uroot -p < /home/ling/websites/jin_test/.deploy/tmp.sql"
"꼼수"는 명령어 주변의 인용문이었습니다.
-t 옵션을 사용하면 원격 셸을 통해 대화식으로 암호를 확인할 수 있습니다.
여기서의 kom은 내 ~/.ssh/config 파일에 정의된 ssh 구성 식별자일 뿐입니다(자세한 내용은 여기: https://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/) 참조).
홈스테드 VM 내의 MySQL에 대해 호스트 환경에서 이를 실행하면 좋은 결과를 얻을 수 있었습니다.VM 내에서 루트 암호를 먼저 설정해야 작동할 수 있었습니다.
ssh vagrant@192.168.10.10 mysql -h localhost -u root -p -e "'SELECT * FROM user;' mysql";
언급URL : https://stackoverflow.com/questions/17544954/run-mysql-query-on-remote-machine-through-ssh-in-command-line
'programing' 카테고리의 다른 글
팬더를 사용하여 주어진 조건에 맞는 열에 값을 합하려면 어떻게 해야 합니까? (0) | 2023.09.12 |
---|---|
MariaDB: GRANT ALL을 수행할 때 오류 1045 (0) | 2023.09.07 |
클릭 시 부트스트랩 드롭다운을 열어 둡니다. (0) | 2023.09.07 |
GROUP BY가 없는 집계 쿼리 (0) | 2023.09.07 |
Spring의 @Value 주석에 여러 속성 이름을 지정할 수 있습니까? (0) | 2023.09.07 |