SW/MySQL

MySQL : 커맨드라인으로 데이터베이스 및 사용자 관리 방법, 예제

얇은생각 2020. 10. 18. 07:30
반응형

MySQL은 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. MySQL 서버를 사용하면 수많은 사용자와 데이터베이스를 만들고 적절한 권한을 부여하여 사용자가 데이터베이스에 액세스하고 관리할 수 있습니다.

커맨드라인을 사용하여 MySQL 또는 MariaDB 데이터베이스와 사용자를 만들고 관리하는 방법에 대해 설명합니다.

 

 

MySQL : 커맨드라인으로 데이터베이스 및 사용자 관리 방법, 예제

 

 

시작하기 전에 먼저 확인

시작하기 전에 시스템에 MySQL 또는 MariaDB 서버가 이미 설치되어 있는 것으로 가정합니다. 모든 명령은 루트 사용자로 실행됩니다. 

MySQL 프롬프트를 열려면 다음 명령을 입력하고 메시지가 표시되면 MySQL 루트 사용자 암호를 입력합니다.

mysql -u root -p

 

 

 

MySQL 데이터베이스 생성

MySQL 데이터베이스를 생성하려면 다음 명령을 실행합니다. database_name을 생성하려는 데이터베이스 이름으로 바꾸기만 하면 됩니다.

CREATE DATABASE database_name;

 

Query OK, 1 row affected (0.00 sec)

 

 

이미 존재하는 데이터베이스를 만들려고 하면 다음 오류 메시지가 표시됩니다.

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

 

 

만들려는 이름과 이름이 같은 데이터베이스가 있는 경우 다음 명령을 사용하여 오류를 방지할 수 있습니다.

CREATE DATABASE IF NOT EXISTS database_name;

 

Query OK, 1 row affected, 1 warning (0.00 sec)

 

 

위의 출력에서 쿼리 확인은 쿼리가 성공했음을 의미하며, 1 경고는 데이터베이스가 이미 존재하고 새 데이터베이스가 생성되지 않았음을 나타냅니다.

 

 

 

모든 MySQL 데이터베이스 나열

MySQL 또는 MariaDB 서버에 있는 모든 데이터베이스를 다음 명령으로 나열할 수 있습니다.

SHOW DATABASES;

 

출력은 다음과 같습니다.

+--------------------+
| Database           |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

 

 

information_schema, mysql, performance_schema sys 데이터베이스는 설치 시 생성되며 다른 모든 데이터베이스, 시스템 구성, 사용자, 권한 및 기타 중요한 데이터에 대한 정보를 저장합니다. 이러한 데이터베이스는 MySQL 설치의 적절한 기능을 위해 필요합니다.

 

 

 

MySQL 데이터베이스를 삭제

MySQL 데이터베이스 삭제는 단일 명령을 실행하는 것만큼 간단합니다. 이것은 되돌릴 수 없는 작업이므로 주의하여 실행해야 합니다. 데이터베이스를 삭제하면 복구할 수 없으므로 잘못된 데이터베이스를 제거하지 않아야 합니다.

MySQL 또는 MariaDB를 삭제하려면 데이터베이스에서 다음 명령을 실행합니다.

DROP DATABASE database_name;

 

Query OK, 0 rows affected (0.00 sec)

 

 

존재하지 않는 데이터베이스를 삭제하려고 하면 다음 오류 메시지가 표시됩니다.

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

 

 

이 오류를 방지하려면 다음 명령을 사용할 수 있습니다.

DROP DATABASE IF EXISTS database_name;

 

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

 

 

MySQL 사용자 계정에 권한 부여

사용자 계정에 부여할 수 있는 권한에는 여러 유형이 있습니다. 여기에서 MySQL에서 지원하는 권한의 전체 목록을 찾을 수 있습니다. 이 가이드에서는 몇 가지 예를 살펴보겠습니다.

특정 데이터베이스를 통해 모든 권한을 사용자 계정에 부여하려면 다음 명령을 사용합니다.

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

 

 

모든 데이터베이스를 통해 모든 권한을 사용자 계정에 부여하려면 다음 명령을 사용합니다.

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

 

 

데이터베이스의 특정 테이블을 통해 사용자 계정에 모든 권한을 부여하려면 다음 명령을 사용합니다.

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

 

 

특정 데이터베이스 유형을 통해 사용자 계정에 특정 권한만 부여하려는 경우 다음을 수행합니다.

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

 

 

 

MySQL 사용자 계정에서 권한 취소

사용자 계정에서 하나 이상의 권한 또는 모든 권한을 취소해야 하는 경우 구문은 해당 권한을 부여하는 것과 거의 동일합니다. 예를 들어 특정 데이터베이스를 통해 사용자 계정의 모든 권한을 취소하려면 다음 명령을 사용합니다.

SHOW GRANTS FOR 'database_user'@'localhost';

 

 

 

MySQL 사용자 계정 권한 표시

특정 MySQL 사용자 계정 유형에 부여된 권한을 찾으려면 다음을 수행합니다.

SHOW GRANTS FOR 'database_user'@'localhost';

 

+---------------------------------------------------------------------------+
| Grants for database_user@localhost                                        |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'database_user'@'localhost'                         |
| GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost'  |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)
반응형