티스토리 뷰

Server dev./MySQL

자주 쓰는 MySQL 명령어

제이스핀 2020. 10. 14. 11:24
반응형

스키마(데이터베이스) > 테이블(Table) > 컬럼(Column)

 

스키마 (데이터베이스) 보기

mysql> show databases;

 

스키마 생성

mysql> CREATE SCHEMA `nodejs` DEFAULT CHARACTER SET utf8;

 

스키마 사용

mysql> use nodejs;

 


 

테이블 확인 (테이블이 뭐뭐 있는지)

mysql> SHOW TABLES;

테이블 생성 (복붙을 위해 ->는 생략)

mysql> CREATE TABLE nodejs.users(

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

age INT UNSIGNED NOT NULL,

married TINYINT NOT NULL,

comment TEXT NULL,

created_at DATETIME NOT NULL DEFAULT now(),

PRIMARY KEY(id),

UNIQUE INDEX name_UNIQUE (name ASC))

COMMENT = '사용자 정보'

DEFAULT CHARACTER SET = utf8

ENGINE = InnoaDB;

 

 

테이블 구조 확인 (속성값)

mysql> DESC users;

 

테이블 제거

mysql> DROP TABLE users;

 


CRUD

Workbench로 하는게 편하긴 함...

 

CREATE

mysql> INSERT INTO nodejs.users (`id`, `name`, `age`, `married`, `comment`, `created_at`) VALUES ('이름', '23', '0', 'comment');

 

READ

mysql> SELECT * FROM nodejs.users;

mysql> SELECT name, married FROM nodejs.users;

 

UPDATE

mysql> UPDATE nodejs.users SET comment = '바꿀 내용' WHERE id = 2;

 

DELETE

mysql> DELETE FROM nodejs.users WHERE id=2;

 

 

 


유저 관리

 

유저 조회

mysql > use mysql;

mysql > select user, host, authentication_string from user;

 

유저 추가

# mysql 에 root로 접속

mysql -u root -p mysql


mysql> create user 'username'@'localhost' identified by 'userpassword';

Query OK, 0 rows affected (0.00 sec)

 

mysql> grant all privileges on DATABASE_NAME.* to username@'localhost';

Query OK, 0 rows affected (0.00 sec)

 

 

'%'를 사용하여 외부에서도 접속 가능하도록

mysql> grant all privileges on DATABASE_NAME.* to username@'%' identified by 'userpassword';

Query OK, 0 rows affected (0.01 sec)

 

비밀번호 변경

mysql> use mysql;

Database changed

mysql> update user set password=PASSWORD('usernewpassword') where user='username';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

 

ERROR 1054 (42S22): Unknown column 'password' in 'field list' 에러 발생 시

mysql> describe user;   명령어를 통해 Field를 살펴보고authentication_string이 있으면 이를 통해 password를 바꾸자.

 

mysql> update user set authentication_string=PASSWORD('usernewpassword') where user='username';

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

만약 그래도 안된다면 지우고 다시해보자

mysql> update user set authentication_string=null where user='username';

mysql> FLUSH PRIVILGES;

mysql> exit;

다시 접속 후 진행

$ mysql -u root

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Penguin13@#';

mysql> FLUSH PRIVILGES;​

 

 

재시작

service mysql restart

 

 

유저 삭제

 

mysql> delete from user where user='username';

Query OK, 1 row affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함