기계적 인조 인간

커맨드 라인에서 MySQL 데이터베이스와 사용자를 관리하는 방법

MySQL SUM IF

MySQL SUM IF

차례:

Anonim

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

이 자습서에서는 명령 줄을 사용하여 MySQL 또는 MariaDB 데이터베이스 및 사용자를 만들고 관리하는 방법에 대해 설명합니다.

시작하기 전에

이 자습서를 시작하기 전에 시스템에 이미 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)

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

모든 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;

새로운 MySQL 사용자 계정 생성

MySQL의 사용자 계정은 사용자 이름과 호스트 이름 부분으로 구성됩니다.

새 MySQL 사용자 계정을 만들려면 다음 명령을 실행하십시오. 'database_user'를 만들려는 사용자 이름으로 바꾸십시오.

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

위의 명령에서 호스트 이름 부분을 localhost 설정했습니다. 즉, 이 사용자는 로컬 호스트 (예: MySQL 서버가 실행되는 시스템)에서만 MySQL 서버에 연결할 수 있습니다. 다른 호스트에서 액세스 권한을 부여하려면 원격 컴퓨터 IP로 localhost 를 변경하거나 호스트 부분에 '%' 와일드 카드를 사용하십시오. 즉, 사용자 계정은 모든 호스트에서 연결할 수 있습니다.

이미 존재하는 사용자 계정을 만들 때 오류를 피하기 위해 데이터베이스를 사용할 때와 동일하게 사용할 수 있습니다.

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

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

MySQL 사용자 계정 비밀번호 변경

MySQL 또는 MariaDB 사용자 계정 비밀번호를 변경하는 구문은 시스템에서 실행중인 서버 버전에 따라 다릅니다.

다음 명령을 실행하여 서버 버전을 찾을 수 있습니다.

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

두 경우 모두 출력은 다음과 같아야합니다.

Query OK, 0 rows affected (0.00 sec)

모든 MySQL 사용자 계정 나열

mysql.users 테이블을 쿼리하여 모든 MySQL 또는 MariaDB 사용자 계정을 나열 할 수 있습니다.

SELECT user, host FROM mysql.user;

출력은 아래와 비슷해야합니다.

+------------------+-----------+ | 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)

MySQL 사용자 계정 삭제

사용자 계정을 삭제하려면 다음 명령을 사용하십시오.

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

사용할 수있는 오류를 피하기 위해 데이터베이스 작업시와 동일합니다.

DROP USER IF EXISTS 'database_user'@'localhost';

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 사용자 계정에서 권한 취소

REVOKE ALL PRIVILEGES ON database_name.* TO '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)

결론

이 튜토리얼은 기본 사항 만 다루지 만, 명령 행에서 MySQL 데이터베이스 및 사용자를 관리하는 방법을 배우려는 사람에게는 좋은 출발점이 될 것입니다. 또한 잊어 버린 경우 MySQL 루트 암호를 재설정하는 방법에 대한 자습서를 확인할 수도 있습니다.

그게 다야! 질문이나 의견이 있으시면 언제든지 의견을 남겨주십시오.

MySQL MariaDB