본문 바로가기
Study/Database

[MySQL] 커맨드창으로 Database 추가, 사용자 생성 및 권한 설정

by sweji 2019. 5. 1.

 

 

워크벤치로 손쉽게 수행이 가능하지만
불가피하게 커맨드창으로 Database 를 추가하고 사용자를 생성 및 권한을 줘야 할때
아래 처럼 수행하자.

1.MySQL 워크벤치 프로그램 말고 커맨드라인 창을 띄우자. unicode든 뭐든 가능

2. window + r 키로 cmd 창을 연다

3. MySQL 커맨드창에서
mysql > show databases; 
라고 입력하여 현재 Database 들을 확인하자.  그리고 quit; 로 닫는다.

university 는 대학교재 예제이므로         처음 MySQL을 사용한다면     6줄 나오는게 정상

4. cmd 창에서 사용할 데이터베이스를 생성한다. (밑줄 친 데가 직접 타이핑 해야 하는 곳!)
C:\Users\ ..생략.. >  cd ..\..
C:\>cd C:\Program Files\MySQL\MySQL Server 8.0\bin
C:\Program Files\MySQL\MySQL Server 8.0\bin> mysqladmin -u root -p 만들데이터베이스이름
Enter password: 비밀번호 입력

DB가 제대로 생성되면 아래처럼 다시 명령어 입력이 뜨게 된다.
C:\Program Files\MySQL\MySQL Server 8.0\bin> 

5.다시 MySQL 커맨드창을 실행해 database가 만들어졌는지 확인한다.

6. cmd 창에서 MySQL 루트 계정으로 로그인하고 권한을 설정한다.
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
Enter password : 비밀번호 입력

성공하면 mysql 커맨드창을 실행했을 때 떴던 문구가 나온다.

7. 이제 사용자 계정을 만들고 권한을 설정하자. 
(1) 모든 권한 부여 
GRANT ALL
PRIVILEGES ON 만든데이터베이스.* TO ‘만들사용자계정’@’localhost’ IDENTIFIED BY ‘사용할비밀번호’;
(2) 부분 권한 부여
GRANT SELECT, UPDATE, DELETE, CREATE, DROP, ALTER ON 만든데이터베이스.* TO 만들사용자계정’@’localhost’ IDENTIFIED BY ‘사용할비밀번호’;
(3) 권한 해제
REVOKE ALL ON 만든데이터베이스.* FROM ‘만든사용자계정’@’localhost';

더보기

주의!!  그대로 복사해서 입력하면 따옴표 에러가 발생한다.  직접 타이핑하자

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'localhost’ IDENTIFIED BY ‘비밀번호' at line 1

해결방법??

나의 경우 계속 제대로 타이핑했는데 이상하게 그 문구를 복사하니 따옴표가 추가로 더 들어가는 것 같아서
아래와 같은 방법으로 사용자를 생성하고 권한을 설정했다.  이유를 아는 분은 댓글로 말씀해주세요!

1.MySQL 커맨드 창에서
2.만든 디비를 사용할 사용자를 새로 생성한다.
mysql> create user '만들사용자계정'@'localhost' identified by '사용자비번';
3.권한을 설정하고
mysql> grant all privileges on 만든데이터베이스이름.* to '만든사용자계정'@'localhost';
4.권한을 적용시킨다.
mysql> flush privileges;
5.올바르게 권한이 적용되었는지 확인해본다.
mysql> show grants for 사용자계정@localhost;

 

 

ERROR 1396 (HY000): Operation CREATE USER failed for 'jack'@'localhost' 에러가 발생한다면?

방법2.

drop user admin@localhost;
flush privileges;
mysql>
CREATE USER '계정명'@'localhost' IDENTIFIED WITH mysql_native_password BY '이 계정이 사용할(이 계정의) 패스워드';
mysql> GRANT ALL PRIVILEGES ON dbMember(액세스 권한 부여해줄 DB명).* TO '계정명'@'localhost';

https://stackoverflow.com/questions/5555328/error-1396-hy000-operation-create-user-failed-for-jacklocalhost

8. 제대로 만들었는지 확인을 위해
루트계정에서 나오고 (quit; 입력)
다시 재접속한다.

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u 만든사용자계정 -p 만든데이터베이스
Enter password : 비번입력

9. show databases; 로 데이터베이스를 확인한다.

댓글