데이터베이스 연결 및 SQL 셸

MySQLBeginner
지금 연습하기

소개

MySQL 과 MariaDB 는 애플리케이션 데이터를 저장하고 구성하는 데 사용하는 관계형 데이터베이스 시스템입니다. 일반 파일과 달리 데이터베이스 서버는 구조화된 쿼리, 동시 액세스, 권한 및 영구 저장소를 제어된 방식으로 처리하도록 설계되었습니다.

따라서 일반적으로 텍스트 편집기로 데이터베이스 파일을 열어 직접 수정하지 않습니다. 대신 데이터베이스 클라이언트를 통해 서버와 상호 작용하며, 서버가 구문, 권한 및 일관성 규칙을 적용합니다.

데이터를 관리하려면 데이터베이스 서버와 통신하는 방법을 알아야 합니다. 이 실습에서는 MySQL 에 연결하고, SQL 셸에 들어가며, 데이터베이스를 대화형으로 탐색하는 기본 명령줄 작업 흐름을 익힙니다.

모든 데이터베이스 관리자가 사용하는 핵심 작업 흐름을 연습합니다.

  1. 서버에 안전하게 연결합니다.
  2. 서버에 저장된 데이터베이스를 확인합니다.
  3. 작업할 특정 데이터베이스를 선택합니다.
  4. 작업이 끝나면 안전하게 연결을 종료합니다.

데이터베이스 서버에 연결

MySQL 데이터베이스와 상호 작용하려면 mysql 명령줄 클라이언트를 사용합니다. 이 도구를 사용하면 서버에 명령을 보내고 결과를 확인할 수 있습니다.

이 단계에서는 root 사용자로 로그인합니다. root 사용자는 데이터베이스 서버의 모든 항목에 대한 전체 권한을 가진 최고 관리자 계정입니다.

데이터베이스의 root 사용자와 Linux 의 root 사용자를 혼동하지 않도록 주의합니다. 두 사용자는 서로 다른 시스템에 속한 별개의 관리자 계정입니다. 둘 다 높은 권한을 나타낸다는 점만 같습니다.

터미널에서 다음 명령을 실행합니다.

mysql -u root -p

옵션 설명:

  • -u root: 사용할 username(사용자 이름) 을 root로 지정합니다.
  • -p: 클라이언트가 비밀번호를 입력하도록 prompt(프롬프트) 를 표시합니다.

Enter 키를 누르면 시스템에서 비밀번호를 입력하라는 메시지가 표시됩니다.

**root**를 입력하고 Enter 키를 누릅니다.

보안 참고: Linux 터미널에서 비밀번호를 입력할 때는 화면에 어떤 문자도 표시되지 않습니다 (별표나 점도 표시되지 않음). 이는 주변 사람이 비밀번호 길이를 확인하지 못하도록 하는 보안 기능입니다. 화면에 아무것도 표시되지 않아도 root를 입력한 후 Enter 키를 누릅니다.

인증에 성공하면 프롬프트가 mysql>로 바뀝니다. 이는 Linux 셸을 나와 이제 MySQL 환경에 들어왔다는 뜻입니다.

이제부터 입력하는 명령은 SQL 문으로 데이터베이스 서버에 전송됩니다. 프롬프트가 바뀌는 이유는 이제 다른 명령 언어와 실행 환경을 사용하기 때문입니다.

사용 가능한 데이터베이스 확인

이제 서버에 연결했으므로 서버에 어떤 데이터가 저장되어 있는지 확인할 수 있습니다. 하나의 MySQL 서버는 여러 데이터베이스를 관리할 수 있습니다 (예: 블로그용 데이터베이스, 사용자 디렉터리용 데이터베이스, 메트릭용 데이터베이스).

사용자에게 접근 권한이 있는 모든 데이터베이스를 나열하려면 mysql> 프롬프트에서 다음 SQL 명령을 실행합니다.

SHOW DATABASES;

중요한 규칙: SQL 에서는 명령을 세미콜론 ;으로 끝내야 합니다.

이는 SQL 클라이언트가 하나의 문장이 어디에서 끝나는지 판단하는 방식의 일부입니다. 대화형 셸에서 세미콜론은 명령을“지금 실행하라”는 명확한 표시 역할을 합니다.

세미콜론은 서버에“명령 입력을 마쳤으니 지금 실행해 주세요”라고 알립니다.

세미콜론을 빠뜨린 채 Enter 키를 누르면 -> 프롬프트가 표시됩니다. 이는 서버가 명령을 끝내기를 기다리고 있다는 뜻입니다. ;를 입력하고 Enter 키를 누르면 문제를 해결할 수 있습니다.

information_schema, mysql, performance_schema, sys와 같은 표준 시스템 데이터베이스가 포함된 목록이 표시되어야 합니다.

데이터베이스 선택

데이터 테이블을 읽거나 쓰기 전에 MySQL 에 작업할 데이터베이스를 알려야 합니다. 이렇게 하면 현재 작업할“컨텍스트”가 설정되므로 모든 쿼리마다 데이터베이스 이름을 입력하지 않아도 됩니다.

하나의 데이터베이스 서버에는 여러 개의 독립적인 데이터베이스가 있을 수 있습니다. USE 명령은 현재 컨텍스트를 변경하며, 이후 SQL 문은 선택한 데이터베이스를 대상으로 해석됩니다.

사용자 계정과 권한을 저장하는 내부 시스템 데이터베이스 mysql을 선택합니다.

다음 명령을 실행합니다.

USE mysql;

Database changed 메시지가 표시되어야 합니다.

참고: USE 명령은 세미콜론이 없어도 엄격하게는 실행되지만, 항상 세미콜론을 사용하는 것이 좋은 습관입니다.

SQL 셸 종료

데이터베이스 작업을 마치면 연결을 올바르게 종료해야 합니다. 그러면 표준 Linux 명령줄로 돌아갑니다.

MySQL 셸을 종료하려면 다음을 입력합니다.

exit

Bye 메시지가 표시되고, 프롬프트가 익숙한 labex:~/project$로 돌아옵니다.

팁: quit 또는 키보드 단축키 Ctrl + D를 사용해도 종료할 수 있습니다.

요약

이 실습에서는 데이터베이스 상호 작용의“Hello World”에 해당하는 기본 작업을 배웠습니다.

  • mysql -u -p를 사용해 안전하게 연결합니다.
  • SHOW DATABASES;로 사용 가능한 데이터베이스를 확인합니다.
  • USE <database>;로 작업 컨텍스트를 전환합니다.
  • 환경을 안전하게 종료합니다.

이 네 가지 간단한 명령은 앞으로 MySQL 에서 수행할 모든 작업의 기초가 됩니다.