명령줄에서 MySQL 데이터베이스 및 사용자 관리 방법

명령줄에서 MySQL 데이터베이스 및 사용자 관리 방법

2022-06-01 last update

9 minutes reading mariadb mysql
MySQL은 가장 유행하는 소스 관계 데이터베이스 관리 시스템이다.MySQL 서버는 대량의 사용자와 데이터베이스를 만들고 사용자가 데이터베이스에 접근하고 관리할 수 있도록 적절한 권한을 부여합니다.이 강좌는 명령줄을 사용하여 MySQL 또는 MariaDB 데이터베이스와 사용자를 만들고 관리하는 방법을 설명합니다.

시작하기 전에

은 본 강좌를 시작하기 전에 시스템에 MySQL 또는 MariaDB 서버가 설치되어 있다고 가정합니다.모든 명령은 루트 사용자로 실행됩니다.MySQL 프롬프트를 열려면 다음 명령을 입력하고 프롬프트에서 MySQL root 사용자 암호를 입력합니다.
mysql -u root -p

새 MySQL 데이터베이스 만들기

~ create a new MySQL database
다음 명령을 실행하고,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)
,Query OK은 조회에 성공했음을 나타낸다. 1 warning은 데이터베이스가 이미 존재하고 새로운 데이터베이스를 만들지 않았다고 알려준다.

모든 MySQL 데이터베이스 나열

가능list all databases
다음 명령을 사용하여 MySQL 또는 MariaDB 서버에 존재합니다.
SHOW DATABASES;
출력은 다음과 같습니다.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
information_schema, mysqlperformance_schema 데이터베이스는 설치할 때 만들어진 것으로 모든 다른 데이터베이스, 시스템 설정, 사용자, 권한 및 기타 중요한 데이터에 대한 정보를 저장합니다.이러한 데이터베이스는 MySQL 설치에 필요한 올바른 기능입니다.

MySQL 데이터베이스 삭제

Deleting a MySQL database
단일 명령을 실행하는 것처럼 간단합니다.이것은 거스를 수 없는 동작이니 조심스럽게 집행해야 한다.이 데이터베이스를 삭제하면 복구할 수 없기 때문에 잘못된 데이터베이스를 삭제하지 않았는지 확인하십시오.ySQL 또는 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;

새 MySQL 사용자 계정 만들기

MySQL의 사용자 계정은 사용자 이름과 호스트 이름 부분으로 구성되어 있습니다.create a new MySQL user account
다음 명령을 실행하려면 "database\uuser"를 생성할 사용자의 이름으로 바꾸십시오.
CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';
위의 명령에서 호스트 이름 부분을 sys으로 설정했습니다. 이것은 사용자가 로컬 호스트 (즉 MySQL 서버를 실행하는 시스템) 에서만 MySQL 서버에 연결할 수 있음을 의미합니다.다른 호스트에서 액세스 권한을 부여하려면 localhost을 원격 컴퓨터 IP로 변경하거나 호스트 부분에 localhost 와일드카드를 사용하면 사용자 계정이 모든 호스트에서 연결할 수 있습니다.데이터베이스를 사용할 때와 마찬가지로 이미 존재하는 사용자 계정을 만드는 데 오류가 발생하지 않도록 사용할 수 있습니다. (adsbygoogle=window.adsbygoogle | [])푸시({});
CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';
Query OK, 0 rows affected, 1 warning (0.00 sec)

ySQL 사용자 계정 암호 변경

MySQL 또는 MariaDB 사용자 계정 암호를 변경하는 문법은 시스템에서 실행되는 서버 버전에 따라 다릅니다.다음 명령을 실행하여 서버 버전을 찾을 수 있습니다.
mysql --version
MySQL 5.7.6 이상 또는 MariaDB 10.1.20 이상 버전이 있는 경우 암호를 변경하려면 다음과 같은 명령을 사용하십시오.
ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';
MySQL 5.7.5 이상 또는 MariaDB 10.1.20 이상 버전이 있는 경우
SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');
을 사용하십시오.'%'
Query OK, 0 rows affected (0.00 sec)
을 조회하여 출력은 다음과 유사해야 합니다:
SELECT user, host FROM mysql.user;

모든 MySQL 사용자 계정 나열

~ list all MySQL or MariaDB user accounts
, 다음 명령을 사용하십시오.
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| database_user    | %         |
| database_user    | localhost |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
존재하지 않는 사용자 계정을 삭제하려고 시도하면 오류가 발생합니다.
DROP USER '[email protected]'localhost';
은 사용자가 사용할 수 있는 오류를 피하기 위해 데이터베이스를 사용할 때와 같습니다.
ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

MySQL 사용자 계정 삭제

은 사용자 계정에 다양한 종류의 권한을 부여할 수 있습니다.찾을 수 있습니다.
MySQL 지원 권한 delete a user account
. 이 안내서에서 우리는 몇 가지 예시를 소개할 것이다. 특정 데이터베이스에서 사용자 계정에 모든 권한을 부여하려면 다음과 같은 명령을 사용하십시오.
DROP USER IF EXISTS 'database_user'@'localhost';
은 모든 데이터베이스에서 사용자 계정에 모든 권한을 부여하려면 다음과 같은 명령을 사용하십시오.
Query OK, 0 rows affected, 1 warning (0.00 sec)
은 데이터베이스의 특정표에 사용자 계정에 모든 권한을 부여하려면다음 명령을 사용합니다:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
특정 데이터베이스 형식을 통해서만 사용자 계정에 특정 권한을 부여하려면:
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

ySQL 사용자 계정에 권한 부여

사용자 계정에서 하나 이상의 권한 또는 모든 권한을 취소해야 한다면 문법은 거의 부여와 같습니다.예를 들어 사용자 계정이 특정 데이터베이스에 대한 모든 권한을 취소하려면 다음 명령을 사용하십시오.
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

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

특정 MySQL 사용자 계정 유형에 부여된 권한을 찾기:
GRANT SELECT, INSERT, DELETE ON database_name.* TO [email protected]'localhost';
REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

ySQL 사용자 계정 권한 표시

본 강좌는 기본 지식만 소개합니다.그러나 명령줄에서 MySQL 데이터베이스와 사용자를 관리하는 방법을 배우고 싶은 사람이라면 좋은 시작이 될 것이다.here에 관한 강좌도 보실 수 있습니다
혹시 잊어버리면그뿐이야!질문이나 피드백이 있으면 언제든지 의견을 발표하십시오.