1. MySql 설치
$ sudo apt update
$ sudo apt install mysql-server
$ sudo systemctl start mysql.service
: MySql 시작
2. Configuring MySQL
$ sudo mysql
: MySql prompt 열기
$ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql_secure_installation 스크립트는 MySQL 설치를 안전하게 유지하는 데 유용한 여러 가지 다른 작업을 수행하므로 MySQL을 사용하여 데이터를 관리하기 전에 스크립트를 실행하는 것이 좋습니다. 하지만 이 재귀 루프에 들어가는 것을 방지하려면 먼저 루트 MySQL 사용자가 인증하는 방법을 조정해야 합니다.
$ sudo exit
: MySql prompt 나가기
$ sudo mysql_secure_installation
:
MySQL 설치의 보안 옵션을 일부 변경할 수 있는 일련의 프롬프트가 표시됩니다. 첫 번째 프롬프트에서는 새로운 MySQL 사용자의 비밀번호 강도를 테스트한 후 유효한 비밀번호인지 확인하는 데 사용할 수 있는 비밀번호 확인 플러그인을 설정할지 묻는 메시지가 표시됩니다.
보안 스크립트가 완료되면 MySQL을 다시 열고 루트 사용자의 인증 방법을 기본값인 auth_socket으로 다시 변경할 수 있습니다.
비밀번호를 사용하여 루트 MySQL 사용자로 인증하려면 다음 명령을 실행하십시오
$ mysql -u root -p
$ ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
이는 sudo mysql
명령을 사용하여 루트 사용자로 MySQL에 다시 연결할 수 있음을 의미합니다.
3. 전용 MySQL 사용자 생성 및 권한 부여
Root
설치 후 MySQL은 데이터베이스를 관리하는 데 사용할 수 있는 루트 사용자 계정을 생성합니다.
이 사용자는 MySQL 서버에 대한 모든 권한을 가집니다. 즉, 모든 데이터베이스, 테이블, 사용자 등에 대한 완전한 제어권을 가집니다.
따라서 관리 기능 외에는 이 계정을 사용하지 않는 것이 가장 좋습니다.
이 단계에서는 루트 MySQL 사용자를 사용하여 새 사용자 계정을 생성하고 권한을 부여하는 방법을 간략하게 설명합니다.
MySQL 5.7(및 이후 버전)을 실행하는 Ubuntu 시스템에서 루트 MySQL 사용자는 기본적으로 비밀번호가 아닌 auth_socket
플러그인을 사용하여 인증하도록 설정됩니다.
이 플러그인에서는 MySQL 클라이언트를 호출하는 운영 체제 사용자의 이름이 명령에 지정된 MySQL 사용자의 이름과 일치해야 하므로 루트 MySQL 사용자에 액세스하려면 sudo 권한으로 mysql을 호출해야 합니다.
Create User
mysql > CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
CREATE USER 후에 사용자 이름을 지정합니다. 바로 뒤에는 @ 기호와 이 사용자가 연결할 호스트 이름이 옵니다.
Ubuntu 서버에서 로컬로만 이 사용자에 액세스하려는 경우 localhost를 지정할 수 있습니다.
사용자 이름과 호스트를 모두 작은따옴표로 묶는 것이 항상 필요한 것은 아니지만 그렇게 하면 오류를 방지하는 데 도움이 될 수 있습니다.
Grant Previlege
새 사용자를 생성한 후 해당 사용자에게 적절한 권한을 부여할 수 있습니다. 사용자 권한을 부여하는 일반적인 구문은 다음과 같습니다.mysql > GRANT PRIVILEGE ON database.table TO 'username'@'host';
이 예제 구문의 PRIVILEGE 값은 사용자가 지정된 데이터베이스 및 테이블에서 수행할 수 있는 작업을 정의합니다.
각 권한을 쉼표로 구분하여 하나의 명령으로 동일한 사용자에게 여러 권한을 부여할 수 있습니다. 데이터베이스 및 테이블 이름 대신 별표(*)를 입력하여 전역적으로 사용자 권한을 부여할 수도 있습니다. SQL에서 별표는 "모든" 데이터베이스나 테이블을 나타내는 데 사용되는 특수 문자입니다.
공식 MySQL 문서에서 사용 가능한 권한의 전체 목록을 확인할 수 있습니다. MySQL documentation
그런 다음 FLUSH PRIVILEGES 명령을 실행하는 것이 좋습니다. 그러면 이전 CREATE USER 및 GRANT 문의 결과로 서버가 캐시한 모든 메모리가 해제됩니다.
mysql > FLUSH PRIVILEGES;
mysql > exit
: 그런 다음 MySQL 클라이언트를 종료할 수 있습니다.
$ mysql -u sammy -p
: 새로운 MySQL 사용자로 로그인하려면 다음과 같은 명령을 사용합니다.
Testing MySQL
$ systemctl status mysql.service
: check status
$ sudo systemctl start mysql
: MySQL이 실행되고 있지 않다면 이 명령어로 시작할 수 있습니다.
Refs
'Database > mysql' 카테고리의 다른 글
mySql 명령어 정리 (0) | 2023.09.06 |
---|