[L] mysql 기본명령어
💡 요약 정리
- MySQL root 패스워드는 mysqladmin 또는 UPDATE 문으로 설정합니다
- 데이터베이스 생성/삭제는 CREATE/DROP DATABASE 명령을 사용합니다
- 사용자 계정 및 권한 관리는 GRANT/REVOKE 명령으로 처리합니다
- 설정 변경 후에는 FLUSH PRIVILEGES로 권한을 새로고침해야 합니다
MySQL 기본 명령어 중 root 패스워드 변경, 데이터베이스 생성/삭제, 권한 부여/제거에 대한 간략한 매뉴얼입니 다.
1. MySQL root 패스워드 설정
① mysqladmin을 이용한 패스워드 설정
MySQL을 처음 설치하면 root 암호가 설정되어 있지 않기 때문에 반드시 설치 후 바로 root 암호를 먼저 설정해주세요.
mysqladmin -u root -p password new-password
실행 과정:
- 명령 실행
- 현재 패스워드 입력 요청 (처음 설치 시 엔터)
- 새 패스워드가
new-password로 설정됨
예시:
[root@cafe24 ~]# mysqladmin -u root -p password 'MyNewP@ssw0rd'
Enter password: [엔터]
# 패스워드 설정 완료
② UPDATE 문을 이용한 패스워드 설정
mysql -u root mysql
mysql> UPDATE user SET password = PASSWORD('new-password') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
명령 설명:
PASSWORD('new-password'): 패스워드를 암호화WHERE user = 'root': root 사용자만 대상FLUSH PRIVILEGES: 권한 테이블 새로고침
2. 데이터베이스 관리
① 데이터베이스 목록 보기
mysql> SHOW DATABASES;
출력 예시:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
② 데이터베이스 생성
mysql> CREATE DATABASE DB명;
예시:
mysql> CREATE DATABASE mywebsite;
Query OK, 1 row affected (0.01 sec)
주의사항:
- 데이터베이스 이름은 대소문자를 구분합니다 (Linux)
- 특수문자 사용 지양
- 언더스코어(_) 사용 권장
③ 데이터베이스 삭제
mysql> DROP DATABASE DB명;
예시:
mysql> DROP DATABASE mywebsite;
Query OK, 0 rows affected (0.05 sec)
⚠️ 경고:
- 삭제된 데이터베이스는 복구할 수 없습니다
- 삭제 전 반드시 백업 권장
3. 사용자 계정 생성/삭제
① 사용자 계정 생성
MySQL에서 사용할 Database를 만든 후 사용자를 추가하려면, root로 접속한 후 작업을 진행해야 합니다.
mysql -uroot -p
Enter password: *******
mysql> USE mysql;
mysql> INSERT INTO user VALUES(
'%', '사용자', PASSWORD('비밀번호'),
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'
);
매개변수 설명:
'%': 모든 호스트에서 접속 가능- 특정 호스트만 허용:
'localhost'또는'192.168.1.%'
- 특정 호스트만 허용:
'사용자': 사용자명PASSWORD('비밀번호'): 암호화된 패스워드- 이후 'Y' 값들: 각종 권한 (모두 허용)
② 사용자에게 데이터베이스 권한 부여
mysql> INSERT INTO db (
Host, Db, User,
Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv
)
VALUES(
'%', 'DB명', '사용자',
'Y', 'Y', 'Y', 'Y', 'Y', 'Y'
);
권한 설명:
Select_priv: SELECT 쿼리 실행Insert_priv: INSERT 쿼리 실행Update_priv: UPDATE 쿼리 실행Delete_priv: DELETE 쿼리 실행Create_priv: 테이블 생성Drop_priv: 테이블 삭제
③ 사용자 계정 삭제
mysql> USE mysql;
mysql> DELETE FROM user WHERE User='유저명';
mysql> FLUSH PRIVILEGES;
예시:
mysql> USE mysql;
mysql> DELETE FROM user WHERE User='testuser';
mysql> FLUSH PRIVILEGES;
4. 권한 부여 (GRANT)
① 관리자 권한 부여
mysql> GRANT ALL TO 유저명 IDENTIFIED BY '패스워드' WITH GRANT OPTION;
설명:
ALL: 모든 권한WITH GRANT OPTION: 다른 사용자에게 권한 부여 가능
예시:
mysql> GRANT ALL TO admin_user IDENTIFIED BY 'AdminP@ss123' WITH GRANT OPTION;
② 일반 사용자 권한 부여
mysql> GRANT USAGE ON DB명.* TO 유저명 IDENTIFIED BY '패스워드' WITH GRANT OPTION;
예시:
mysql> GRANT USAGE ON mywebsite.* TO web_user IDENTIFIED BY 'WebP@ss456' WITH GRANT OPTION;
USAGE 의미:
- 로그인만 가능
- 실제 데이터 접근 권한 없음
③ 필요한 권한만 선택적으로 부여
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP
-> ON DB명.*
-> TO 유저명 IDENTIFIED BY '패스워드'
-> WITH GRANT OPTION;
권한 종류:
SELECT: 데이터 조회INSERT: 데이터 삽입UPDATE: 데이터 수정DELETE: 데이터 삭제INDEX: 인덱스 생성/삭제ALTER: 테이블 구조 변경CREATE: 테이블/DB 생성DROP: 테이블/DB 삭제
예시:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE
-> ON mywebsite.*
-> TO app_user IDENTIFIED BY 'AppP@ss789';
5. 권한 취소 (REVOKE)
① 모든 권한 취소
mysql> REVOKE ALL PRIVILEGES, GRANT FROM 유저명;
예시:
mysql> REVOKE ALL PRIVILEGES, GRANT FROM old_user;
② 특정 권한만 취소
mysql> REVOKE ALTER, CREATE, DROP
-> ON DB명.*
-> FROM 유저명;
예시:
mysql> REVOKE ALTER, CREATE, DROP
-> ON mywebsite.*
-> FROM web_user;
③ 데이터베이스 접근 거부
mysql> REVOKE ALL
-> ON DB명.*
-> FROM 유저명;
예시:
mysql> REVOKE ALL
-> ON mywebsite.*
-> FROM blocked_user;
6. MySQL 재시작 명령어
서버에 root 계정으로 로그인한 후 명령 프롬프트에서 실행합니다.
① 시작
[root@cafe24 /root]# /home/mysql/share/mysql/mysql.server start
또는:
service mysqld start
# 또는
systemctl start mysqld
② 정지
[root@cafe24 /root]# /home/mysql/share/mysql/mysql.server stop
또는:
service mysqld stop
# 또는
systemctl stop mysqld
③ 재시작
[root@cafe24 /root]# /home/mysql/share/mysql/mysql.server restart
또는:
service mysqld restart
# 또는
systemctl restart mysqld