본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

mysh

0

mysh는 atani가 개발한 MIT 라이선스의 MySQL CLI 도구로, 연결 프로파일 관리와 SSH 터널 지원에 더해 AI 코딩 에이전트나 스크립트로 출력이 캡처되는 상황에서 민감 컬럼을 자동으로 마스킹하는 기능을 제공합니다.

데이터베이스터널

소개

mysh는 atani가 개발한 MIT 라이선스의 MySQL CLI 도구로, 연결 프로파일 관리와 SSH 터널 지원에 더해 AI 코딩 에이전트나 스크립트로 출력이 캡처되는 상황에서 민감 컬럼을 자동으로 마스킹하는 기능을 제공합니다. 기본 동작은 mysql/mycli 클라이언트를 호출하면서 production 환경과 비-TTY 컨텍스트에서 결과가 에이전트나 로그로 새기 전에 가려지도록 설계되었습니다. 동명의 다른 프로젝트와 구분하기 위해 'my-sh(/maɪʃ/)'라고 표기하며, 표준 winget 패키지명(atani.mysh)으로 배포됩니다.

상세정보

연결 프로파일 관리

mysh add / list / edit / remove 명령으로 연결을 등록하고 관리하며, 프로파일은 ~/.config/mysh/connections.yaml에 저장됩니다. 등록 시 비밀번호는 AES-256-GCM으로 암호화되어 저장되고, 키는 Argon2id로 유도됩니다. 환경(env)은 production / staging / development로 구분되며, 같은 DB라도 팀원 간 다른 자격증명을 가질 수 있도록 설계되어 있습니다.

SSH 터널 관리

connect와 run은 기본적으로 작업이 끝나면 닫히는 임시 터널을 열고, mysh tunnel 명령으로 백그라운드 지속 터널을 띄울 수 있습니다. 여러 연결에 대해 동시에 터널을 유지할 수 있어 bastion 호스트를 경유하는 production DB 접근을 반복 명령 없이 재사용할 수 있습니다.

AI·비-TTY 출력 자동 마스킹

연결별로 마스킹 대상 컬럼(예: email, phone, password_hash)과 패턴(예: *address*, *secret*)을 설정할 수 있습니다. production 연결은 터미널/캡처 모두 마스킹되고, staging은 캡처될 때만, development는 마스킹하지 않는 것이 기본값입니다. production에서 --raw은 반드시 인터랙티브 TTY에서 확인을 거쳐야 하므로, AI 도구나 비-대화 스크립트는 마스킹을 우회할 수 없습니다.

내장 MCP 서버

mysh는 Model Context Protocol 서버를 내장하여, Claude Code, Cursor 같은 AI 에이전트가 DB를 별도 CLI 호출 대신 first-class 도구로 사용할 수 있게 합니다. MCP 트랜스포트는 비-대화형이므로 mysh_query / mysh_ping 결과도 같은 마스킹 규칙이 적용되며, MCP 경로로는 원본 출력을 요청할 수 없습니다.

DBeaver·Sequel Ace·Workbench 가져오기

기존 GUI 클라이언트의 연결을 mysh import --from dbeaver, --from sequel-ace, --from workbench로 가져올 수 있어, 처음부터 프로파일을 다시 만들지 않고도 기존 구성을 재사용할 수 있습니다.

쿼리 실행과 다양한 출력 형식

mysh run은 인라인 SQL과 .sql 파일을 모두 지원하고, plain / markdown / csv / json / pdf 형식으로 결과를 내보낼 수 있습니다. mysh slice는 조건에 맞는 레코드를 INSERT 문으로 추출하여 재현 가능한 테스트 데이터를 만들 때 사용합니다.

Redash 통합

직접 DB 접속 대신 Redash API 키만으로 production DB에 질의할 수 있는 경로를 제공합니다. 이 경로에서도 결과에 마스킹 규칙이 동일하게 적용됩니다.

팀 공유용 익스포트

mysh export는 비밀번호를 제외한 연결 설정을 YAML로 내보내고, 받는 쪽은 mysh import --from yaml --file ...로 본인 비밀번호를 다시 입력해 가져옵니다. 마스킹·환경·SSH 설정까지 함께 전달되므로 비-엔지니어 팀원도 별도 설정 없이 같은 프로파일을 사용할 수 있습니다.

mysh는 무료인가요?

네. 저장소는 MIT 라이선스이며, winget과 GitHub 릴리스를 통해 무료로 설치할 수 있습니다.

어떤 운영체제를 지원하나요?

README 기준으로 macOS는 Homebrew, Windows는 MSI/winget/독립 실행형 바이너리, 그리고 go install을 통한 크로스플랫폼 설치 경로가 명시되어 있습니다.

SSH 터널을 쓰려면 별도 설정이 필요한가요?

연결 프로파일에 SSH 호스트, 포트, 사용자명, 키 또는 비밀번호 인증 정보를 추가하면 됩니다. connect/run은 임시 터널을 자동으로 열고, 반복 작업에는 mysh tunnel로 백그라운드 터널을 유지할 수 있습니다.

AI 에이전트에 원본 데이터가 노출되나요?

production 환경으로 분류된 연결은 터미널 출력과 캡처 출력 모두에서 마스킹되며, --raw은 인터랙티브 TTY 확인을 요구합니다. MCP 경로로는 원본 출력을 요청할 수 없습니다.

DBeaver 등 기존 도구의 연결을 그대로 가져올 수 있나요?

DBeaver, Sequel Ace, MySQL Workbench의 연결을 mysh import로 가져올 수 있고, 비밀번호는 가져온 후 사용자가 다시 입력하는 방식입니다.

시스템 요구사항

Windows 11 · x64 · winget