MySQL 데이터베이스 나열 방법(단계별 코드 자습서)

게시 됨: 2022-10-22

MySQL은 오늘날 가장 널리 사용되는 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다. 주로 구조화된 쿼리 언어(SQL)를 사용하여 확장 가능한 데이터베이스를 만들고 관리할 수 있는 강력한 데이터베이스 플랫폼입니다.

MySQL 서버는 데이터베이스가 상주하고 액세스하는 환경입니다. 서버 관리자는 서버에 있는 데이터베이스 나열, 특정 데이터베이스의 테이블 표시, 사용자 역할 및 권한 보기, 제약 조건 액세스 등 이 환경에 대한 세부 정보를 검색해야 하는 경우가 많습니다.

이 기사에서는 명령 프롬프트를 통해 MySQL 데이터베이스를 나열하는 방법에 대해 설명합니다.

MySQL 데이터베이스를 나열하기 위한 전제 조건

시작하려면 로컬 시스템에서 MySQL 서버를 실행해야 합니다. MySQL이 없는 경우 설치하는 몇 가지 방법이 있습니다.

  • WAMPServer, XAMPP, MAMP 또는 MySQL을 포함하는 기타 소프트웨어 배포 스택을 설치합니다.
  • 공식 웹사이트에서 직접 MySQL 설치 프로그램을 다운로드하여 실행하고 설정 프로세스를 거쳐 MySQL 서버 및 기타 도구를 구성 및 설치합니다.

명령줄을 사용하여 MySQL 명령을 편리하게 실행하려면 MySQL 실행 파일의 경로를 시스템 환경에 추가해야 합니다. 옵션 2를 사용하여 MySQL을 설치한 경우 이 단계가 필요하지 않으므로 다음 섹션을 건너뛰어도 됩니다.

시스템의 변수 환경에 MySQL 경로 추가

이 섹션에서는 Windows 컴퓨터에서 XAMPP 또는 WAMP를 실행하는 경우 시스템의 변수 환경에 MySQL 실행 파일 경로를 추가하는 방법을 안내합니다.

먼저 Windows 파일 탐색기를 시작하고 내 PC 로 이동합니다. WAMP 또는 XAMPP 패키지( C: )를 설치한 드라이브를 클릭합니다.

XAMPP를 실행하는 경우 xampp > mysql > bin 으로 이동하여 전체 경로를 bin 폴더로 복사합니다. WAMP의 경우 {your-wamp-version} > bin > mysql > {your-mysql-version} > bin 을 통해 전체 경로로 이동합니다.

MySQL CLI에 액세스하기 위한 전체 경로입니다.
bin 폴더의 전체 경로입니다.

시작 메뉴를 클릭하고 "경로"를 검색하십시오. 시스템 환경 변수 편집을 클릭합니다.

그런 다음 시작 및 복구 에서 환경 변수 를 클릭하고 PATH 변수를 선택하고 편집 을 클릭합니다.

그런 다음 새로 만들기를 클릭하고 MySQL 실행 파일(이전에 복사한)의 전체 경로를 붙여넣습니다.

환경 변수 편집.
환경 변수 편집.

그런 다음 확인 을 클릭하여 변경 사항을 저장합니다.

경로가 추가되었으므로 터미널에서 MySQL 명령을 실행할 수 있습니다.

MySQL에 로그인

MySQL 데이터베이스를 나열하려면 사용자에게 모든 데이터베이스에 대한 액세스 권한이 부여되거나 모든 사용자에게 액세스 권한을 부여하는 글로벌 SHOW DATABASES 권한을 설정해야 합니다.

명령 프롬프트를 통해 로그인하기 전에 MySQL 서버가 실행 중인지 확인하십시오.

 mysql -u -p

참고: 교체 귀하의 사용자 이름으로. MySQL의 기본 사용자 이름은 root 이고 암호는 비어 있습니다(기본적으로 암호는 없습니다).

터미널을 통해 MySQL에 로그인합니다.
MySQL에 로그인합니다.

MySQL 서버 내부의 데이터베이스 표시

이제 로그인 SHOW DATABASES 명령을 실행하여 서버에 있는 MySQL 데이터베이스를 나열할 수 있습니다.

 SHOW DATABASES;

그 대가로 스토리지에 있는 모든 데이터베이스를 가져옵니다.

MySQL 데이터베이스를 표시합니다.
스토리지에 있는 데이터베이스 목록입니다.

반환된 6개의 데이터베이스 중 information_schemaperformance_schema 는 MySQL을 설치할 때 자동으로 생성되는 기본 데이터베이스입니다.

information_schema 데이터베이스는 MySQL 서버에 저장된 데이터베이스 및 기타 객체(보기, 사용자 권한, 테이블, 제약 조건 등)와 관련된 모든 정보를 저장하는 수정 불가능한 데이터베이스입니다.

데이터베이스 출력 필터링 결과

이전에는 SHOW DATABASES 를 사용하여 MySQL 서버의 모든 데이터베이스를 반환했지만 주로 서버에 많은 데이터베이스가 있는 경우 데이터베이스 출력을 필터링해야 하는 경우가 많았습니다.

LIKE 절은 지정된 패턴을 기반으로 SHOW DATABASE 의 결과를 필터링합니다. 다음은 일반 구문입니다.

 SHOW DATABASES LIKE '';

일치시키려는 패턴을 나타내는 문자열이어야 합니다. 문자열은 하나 이상의 문자를 나타내는 백분율 기호 % 로 끝나야 합니다.

예를 들어, 이름이 문자 w 로 시작하는 데이터베이스만 표시하려면 다음을 실행하면 됩니다.

 SHOW DATABASES LIKE 'w%';

필터링된 결과는 다음과 같습니다.

필터 목록 mysql 데이터베이스
'w%'를 사용할 때 필터링된 데이터베이스 응답입니다.

정보 스키마를 사용하여 테이블 메타데이터 쿼리

앞에서 information_schema 를 저장하는 방법을 살펴보았습니다.

information_schema 데이터베이스는 schemata 테이블을 사용하여 모든 데이터베이스에 대한 정보를 저장합니다. 데이터베이스 필터링의 경우 복잡한 검색을 수행하여 특정 데이터베이스에 대한 스키마 테이블을 쿼리할 수 있습니다.

예를 들어, 이름이 "samp" 또는 "word"로 시작하는 데이터베이스를 원하는 경우 다른 여러 절을 결합하여 복잡한 쿼리를 만들 수 있습니다.

 SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

결과는 다음과 같습니다.

MySQL 사용하기
복잡한 쿼리의 결과입니다.

또한 모든 테이블에 대한 정보가 포함된 information_schema 데이터베이스의 tables 테이블이 있습니다. 마찬가지로 쿼리를 수행하여 지정된 패턴과 일치하는 테이블만 검색할 수 있습니다.

예를 들어 다음 쿼리는 WordPress 테이블의 스키마 정보만 반환하며 이름이 "wp_"로 시작하는 테이블만 반환합니다.

 SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

결과는 다음과 같습니다.

다운타임 및 WordPress 문제로 어려움을 겪고 계십니까? Kinsta는 시간을 절약하도록 설계된 호스팅 솔루션입니다! 우리의 기능을 확인하십시오

wp_tables MySQL 데이터베이스 테이블을 나열합니다.
워드프레스 테이블만의 스키마 정보 결과.

information_schema 에 있는 다른 테이블에는 columns , constraints , table_constraints , check_constraintsreferential_constraints 가 있습니다.

일반적인 문제 및 모범 사례

SQL을 실행할 때 오류가 발생하는 가장 일반적인 원인 중 하나는 명령문의 끝에 세미콜론을 사용하지 않는 것입니다.

다른 하나는 잘못된 SQL 구문이나 철자가 잘못된 테이블/열 이름을 사용하고 있습니다. 이를 방지하려면 테이블 또는 열 이름의 철자가 올바른지 교차 확인하십시오. 구문도 교차 확인하십시오.

다음은 기억해야 할 몇 가지 다른 모범 사례입니다.

SQL 키워드에 대문자 사용

SQL 코드를 작성할 때 SQL 키워드에는 항상 대문자를 사용하고 테이블 이름과 열 이름에는 소문자를 사용하십시오. 이렇게 하면 코드가 더 읽기 쉽고 오류에 덜 취약합니다.

그래서, 이것 대신에:

 select * from information_schema.tables where table_name like 'wp_%';

이 작업을 수행:

 SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

SELECT *

SQL 쿼리에서 SELECT * 를 사용하지 마십시오. 무엇을 반환할지 항상 알 수 없기 때문에 요청이 명확하지 않습니다. 대신 테이블에서 선택하려는 열을 지정하십시오.

그래서 이것 대신에:

 SELECT * EXCEPT(phone) FROM users.profile

이 작업을 수행:

 SELECT name, dob, address, country, address, FROM user.profile

코드 들여쓰기

마지막으로 오류를 더 쉽게 찾을 수 있는 또 하나의 팁은 코드를 들여쓰는 것입니다. 가독성이 높아집니다!

데이터베이스 관리자

또는 데이터베이스 관리자를 사용하여 SQL을 작성하지 않고 데이터베이스를 관리하도록 선택할 수 있습니다. 이를 통해 사용자는 SQL 쿼리를 작성할 필요 없이 데이터베이스 관리 기능에 액세스할 수 있습니다. 이 소프트웨어는 MySQL 서버에 연결하고 데이터베이스 기능을 노출하는 사용자 인터페이스를 제공합니다. 연결되면 UI에 서버의 모든 데이터베이스가 표시됩니다. 모양과 느낌은 관리 도구에 따라 다르지만 프로세스는 비슷합니다.

DevKinsta의 데이터베이스 관리자.
DevKinsta의 데이터베이스 관리자.

DevKinsta를 통해 액세스할 수 있는 phpMyAdmin 및 Adminer를 포함하여 여러 도구를 선택할 수 있습니다. DevKinsta의 기본 관리 도구는 Adminer로 가볍고 쉽고 빠르지만 phpMyAdmin은 쉽게 접근할 수 있습니다.

요약

서버 관리자는 MySQL 서버의 데이터베이스에 대한 세부 정보를 효율적이고 정확하게 검색할 수 있어야 합니다. 어떤 데이터베이스가 서버에 있는지 확인하고, 특정 테이블과 그 안에 있는 정보를 보고, 사용자 역할 및 권한에 대한 정보에 액세스하는 기능은 모두 중요한 작업입니다. 다행히 명령줄에서 SQL을 사용하면 이 모든 작업을 쉽게 수행할 수 있습니다.

데이터베이스 관리가 테이블 쿼리 이상으로 확장되어야 하는 경우 Kinsta가 도움이 될 수 있습니다. 지금 확장 가능한 데이터베이스 호스팅 옵션에 대해 자세히 알아보십시오!