본문 바로가기

서버 기초/mysql

터미널로 테이블,유저생성, 권한 부여

C:\xampp\mysql\bin>mysql -u root -p
Enter password: ****
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 8.0.0-dmr-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> use mysql
Database changed
MySQL [mysql]> create database myapp;
Query OK, 1 row affected (0.045 sec)

MySQL [mysql]> create user 'homestead' identified by 'secret';
Query OK, 0 rows affected (0.010 sec)

MySQL [mysql]> grant all privileges on myapp.* to 'homestead';
Query OK, 0 rows affected (0.009 sec)

MySQL [mysql]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MySQL [mysql]> quit
Bye

C:\xampp\mysql\bin>

 


위의 전체적인 문장을 일일이 뜯어가며 적어본다. 

단! 로그인하는 부분은 전포스팅에서 해서 또 적지는 않고, 시작한다. 

 

1.

MySQL [(none)]> use mysql 
Database changed 

 

데이터베이스를 mysql로 생성하고 사용하기 위해 바꿨다.

 

2. 

MySQL [mysql]> create database myapp; 
Query OK, 1 row affected (0.045 sec) 

 

myapp 이라는 데이터 베이스를 생성했다. 

1-2 엮어서 얘기하면, mysql에 myapp 을 생성했단 거고, 아직 테이블은 생성하지 않았다. 

 

3. 

MySQL [mysql]> create user 'homestead' identified by 'secret'; 
Query OK, 0 rows affected (0.010 sec) 

 

'homestead' 라는 유저를 만들었고, 비밀번호는 'secret'으로 지정했다.

빈칸으로 둬도 생관없고 숫자로 지정해도 상관없다. 

기억하기 쉬운걸로 해두자! 잊어버리면 복구를 못한다ㅠㅠ

 

4. 

MySQL [mysql]> grant all privileges on myapp.* to 'homestead'; 
Query OK, 0 rows affected (0.009 sec) 

 

'homestead' 라는 위에서 만든 계정에 모든 권한을 설정해주는 것이다. 

테이블의 생성,수정 등을 하려면 꼭 권한을 줘야한다.

나는 mysql 워크벤치에서 작업을 하려고 할 때 컬럼을 삭제할 때 권한이 없다고 오류가 떴다. 

분명 터미널에서 '모든'권한을 줬는데도 웨,,,? 라는 생각에 멘붕이 왔고, 결국 mysql 워크벤치를 통해 다시 만들었다.

(밑의 5번까지 모두 진행했는데도 권한이 없다고 워크벤치에선 삭제가 안됐다.) 

그런데 또 신기한건, 터미널로 하면 삭제가 됐다. 

뭔가 있는 것 같은데 그건 또 공부하도록 한다. 

 

5. 

MySQL [mysql]> flush privileges; 
Query OK, 0 rows affected (0.001 sec) 

 

4번의 권한 설정을 저장해준다. 

저장하지 않으면 사용할 수 없으니 주의! 

이 작업을 했는데도 나처럼 워크벤치에서 설정이 안됐다고 뜰 수 있다.

그럴 땐 cmd에서만 하던가 아니면 나처럼 깔끔하게 포기하자 ^^!