이 글에서는 mysql이나 mysqldump 같은 클라이언트 프로그램에서 명령줄 옵션(command line options)을 사용해 MySQL 서버에 연결하는 방법을 살펴봅니다.
클라이언트 프로그램이 MySQL 서버에 접속하려면 올바른 연결 파라미터를 지정해야 합니다. 대표적인 연결 파라미터로는 서버가 실행 중인 호스트 이름, MySQL 계정의 사용자 이름과 비밀번호가 있습니다. 모든 연결 파라미터는 기본값(default value)을 가지고 있으며, 필요에 따라 명령줄 옵션이나 옵션 파일(option file)을 통해 기본값을 재정의할 수 있습니다.
mysql 실행하기 – 기본값으로 연결
별도의 연결 파라미터를 지정하지 않고 mysql을 실행하는 명령은 다음과 같습니다.
mysql
파라미터 옵션이 없으므로 기본값이 적용됩니다.
- 기본 호스트 이름은 localhost입니다. Unix 시스템에서는 이 값이 특별한 의미를 가집니다.
- 기본 사용자 이름은 Windows에서는 ODBC, Unix에서는 Unix 로그인 이름입니다.
- --password 또는 -p 옵션이 제공되지 않으므로 비밀번호는 전송되지 않습니다.
- mysql의 경우 첫 번째 인수가 기본 데이터베이스 이름으로 간주됩니다. 인수가 없으면 어떤 기본 데이터베이스도 선택하지 않습니다.
호스트 이름, 사용자 이름, 비밀번호 지정하기
호스트 이름, 사용자 이름, 비밀번호를 명시적으로 지정하려면 명령줄에 적절한 옵션을 입력해야 합니다. 아래 예시를 참고하세요.
mysql --host=localhost --user=myname --password=password mydb
mysql -h localhost -u myname -ppassword mydb
비밀번호 값은 선택 사항입니다.
- --password 또는 -p 옵션과 함께 비밀번호 값을 지정하는 경우, --password= 또는 -p 뒤에 오는 비밀번호 사이에는 공백이 없어야 합니다.
- --password 또는 -p 옵션에 비밀번호 값을 지정하지 않으면, 클라이언트 프로그램이 사용자에게 비밀번호 입력을 요청합니다. 이때 입력되는 비밀번호는 화면에 표시되지 않으므로 보안상 안전합니다.
연결 방식(Connection Type) 결정하기
다음 단계는 클라이언트 프로그램이 어떤 유형의 연결을 수행할지 결정하는 것입니다. 클라이언트가 로컬 서버에 TCP/IP 방식으로만 접속하도록 강제하려면, --host 또는 -h 옵션에 localhost 대신 127.0.0.1 값을 지정하면 됩니다. 물론 로컬 서버의 IP 주소나 호스트 이름을 직접 입력해도 됩니다. 또한 localhost 연결이라도 --protocol=TCP 옵션을 사용하면 전송 프로토콜을 명시적으로 지정할 수 있습니다.
mysql --host=127.0.0.1
mysql --protocol=TCP
원격 서버에 접속할 때는 반드시 TCP/IP 방식을 사용해야 합니다. 아래 명령은 원격 서버 remote.example.com에서 실행 중인 MySQL 서버에 기본 포트 번호인 3306으로 연결합니다.
mysql --host=remote.example.com
포트 번호를 명시적으로 지정하고 싶다면 --port 또는 -P 옵션을 함께 사용하면 됩니다.
mysql --host=remote.example.com --port=13306